25个好用到爆的一行Python代码,建议收藏
大家好,我是欣一
在學(xué)習(xí)Python的過程當(dāng)中,有很多復(fù)雜的任務(wù)其實只需要一行代碼就可以解決,那么今天小編我就來給大家介紹20個實用的一行Python代碼,希望對大家能夠有所幫助。
1.兩個字典的合并
x?=?{'a':?1,?'b':?2} y?=?{'c':?3,?'d':?4}將兩個字典合并起來,代碼如下
x.update(y) print(x)output
{'a':?1,?'b':?2,?'c':?3,?'d':?4}2.兩個列表的合并
x?=?['a',?'b'] y?=?['c',?'d',?'e']將上面兩個列表合并起來,代碼如下
x.extend(y) print(x)output
['a',?'b',?'c',?'d',?'e']當(dāng)然除此之外,我們還有其他的方法來將兩個列表合并起來,例如
x?+=?y print(x)output
['a',?'b',?'c',?'d',?'e']3.計算列表中元素出現(xiàn)的頻率
主要是通過調(diào)用python當(dāng)中的collections模塊來實現(xiàn),例如
from?collections?import?Counter my_list?=?['a',?'b',?'b',?'a',?'a',?'a',?'c',?'c',?'b',?'d'] print(Counter(my_list).most_common())output
[('a',?4),?('b',?3),?('c',?2),?('d',?1)]若是我們想要出現(xiàn)頻率最多的一個,也就是在上面代碼的基礎(chǔ)之上添加篩選第一個元素的操作即可
print(Counter(my_list).most_common()[0])output
('a',?4)出現(xiàn)頻率最多的是元素a,總共出現(xiàn)了4次
當(dāng)然要是在后面再添加一個[0],意思就是篩選出出現(xiàn)頻率最多的元素
print(Counter(my_list).most_common()[0][0])output
a4.計算獲得除法中的商和余數(shù)
一般我們?nèi)粝肴〉贸ó?dāng)中的商和余數(shù),一般是Python運算符號當(dāng)中的//和/,而divmod方法則可以讓我們同時獲得除法運算當(dāng)中的商和余數(shù),代碼如下
quotient,?remainder?=?divmod(37,?5) print(quotient,?remainder)output
7?25.計算得到列表當(dāng)中長度最長的字符串
words?=?['Python',?'is',?'awesome'] print(max(words,?key=len))output
awesome6.將列表中的順序倒轉(zhuǎn)
words?=?['Python',?'is',?'awesome'] reverse_words?=?words[::-1] print(reverse_words)output
['awesome',?'is',?'Python']7.文件的讀與寫
我們先將數(shù)據(jù)寫入到文件當(dāng)中
data?=?'Python?is?awesome' with?open('file.txt',?'a',?newline='\n')?as?f:?f.write(data)那我們從剛生成的文件當(dāng)中讀取剛寫入的數(shù)據(jù),代碼就是這么來寫
data?=?[line.strip()?for?line?in?open("file.txt")] print(data)output
['Python?is?awesome']8.將字典當(dāng)中的鍵值對位置調(diào)換
staff?=?{'Data?Scientist':?'Mike',?'Django?Developer':?'Dylan'} staff?=?{i:j?for?j,?i?in?staff.items()} print(staff)output
{'Mike':?'Data?Scientist',?'Dylan':?'Django?Developer'}9.將嵌套列表合并為一個列表
假設(shè)我們有這樣的一個列表
l?=?[[1,?2,?3],?[4,?5],?[6],?[7,?8],?[9]]而我們最終希望列表能夠是
[1,?2,?3,?4,?5,?6,?7,?8,?9]我們可以這么來做
flattened_list?=?[item?for?sublist?in?l?for?item?in?sublist print(flattened_list)output
[1,?2,?3,?4,?5,?6,?7,?8,?9]10.列表當(dāng)中數(shù)據(jù)類型的轉(zhuǎn)換
例如有下面的列表
['1',?'2',?'3']我們要將其轉(zhuǎn)換成整數(shù)類型,代碼如下
print(list(map(int,?['1',?'2',?'3'])))output
[1,?2,?3]當(dāng)然我們也可以將可以嘗試轉(zhuǎn)換成浮點數(shù)的類型,代碼如下
print(list(map(float,?['1',?2,?'3.0',?4.0,?'5',?6])))output
[1.0,?2.0,?3.0,?4.0,?5.0,?6.0]11.將列表轉(zhuǎn)化成字典
cars?=?['Audi',?'BMW',?'Ford',?'Tesla',?'Volvo'] cars_dict?=?dict(enumerate(cars)) print(cars_dict)output
{0:?'Audi',?1:?'BMW',?2:?'Ford',?3:?'Tesla',?4:?'Volvo'}12.將列表當(dāng)中的重復(fù)元素去除
list(set(['a',?'a',?'b',?'a',?'c']))output
['a',?'b',?'c']13.從列表中篩選出特定元素
cars?=?['Audi',?'BMW',?'Ford',?'Tesla',?'Volvo'] car_1?=?[car?for?car?in?cars?if?car[0]?==?"A"] print(car_1)output
['Audi']當(dāng)然我們還可以通過調(diào)用Python當(dāng)中的filter方法來實現(xiàn),代碼如下
car_1?=?list(filter(lambda?c:?c[0]?==?'A',?cars))得到的結(jié)果也和上述的一樣
14.列表中的元素排序
numbers?=?[55,?-30,?28,?-36,?48,?20] numbers.sort() print(numbers)output
[-36,?-30,?20,?28,?48,?55]當(dāng)然我們也可以從大到小,這樣的方式來排序,代碼如下
numbers.sort(reverse=True) numbersoutput
[55,?48,?28,?20,?-30,?-36]而對于字符串而言,我們可以根據(jù)首字母的字母表順序來排序
cars?=?['Ford',?'Tesla',?'BMW',?'Volvo',?'Audi'] cars.sort() print(cars)output
['Audi',?'BMW',?'Ford',?'Tesla',?'Volvo']15.合并集合
set1?=?{"1",?"2",?"5"} set2?=?{"4",?"6",?"7"}set1.update(set2) print(set1)output
{'7',?'6',?'5',?'2',?'1',?'4'}16. 根據(jù)鍵來對字典進行排序
d?=?{'one':?1,?'three':?4,?'five':?8,?'six':?10} result?=?{key:?d[key]?for?key?in?sorted(d.keys())} print(result)output
{'five':?8,?'one':?1,?'six':?10,?'three':?4}17. 根據(jù)鍵值來對字典進行排序
d?=?{'one':?15,?'three':?12,?'five':?8,?'six':?30} result?=?{key:?value?for?key,?value?in?sorted(d.items(),?key=lambda?item:?item[1])} print(result)output
{'five':?8,?'three':?12,?'one':?15,?'six':?30}18. 替換字符串
"Python?is?a?programming?language.?Python?is?awesome".replace("Python",'Java')output
Java?is?a?programming?language.?Java?is?awesome19. 計算指定字符串出現(xiàn)的次數(shù)
a?=?'python?is?a?programming?language.?python?is?python.' result?=?a.count('python') print(result)output
320. 將自定義方法作用在列表中的每個元素
from?functools?import?reducereduce(lambda?x,?y:?x*y,?[2,?2,?3,?4])output
4821. 找到最大的那個數(shù)
find_max?=?lambda?x,y:?x?if?x?>?y?else?y result?=?find_max(5,20)output
2022. 將矩陣轉(zhuǎn)置
a?=?[[1,?2,?3],[4,?5,?6],[7,?8,?9]]transposed?=?[list(i)?for?i?in?zip(*a)] print(transposed)output
[[1,?4,?7],?[2,?5,?8],?[3,?6,?9]]23. 生成斐波納契數(shù)列
斐波納契數(shù)列指的是列表當(dāng)中元素的值是由前兩個元素的值的總和而來的,例如像是1, 1, 2, 3, 5, 8,13,要生成它的代碼如下
fibo?=?[0,?1] [fibo.append(fibo[-2]+fibo[-1])?for?i?in?range(10)] print(fibo)output
[0,?1,?1,?2,?3,?5,?8,?13,?21,?34,?55,?89]24. 刪除列表中的多個元素
mylist?=?[100,?200,?300,?400,?500] del?mylist[:3] print(mylist)output
[400,?500]25. 多個if-else組合
目標(biāo)是將下面多個if-else的組合,寫在一行上面
x?=?200if?x?<?20:print("小于20") elif?x?==?200:print("等于200") else:print("大于20且不等于200")我們也可以將多個if-else組合放在一行上面寫
x?=?200 print("小于20")?if?x?<?20?else?print("等于200")?if?x?==?200?else?print("大于20且不等于200")各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)
推薦閱讀
牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)
牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)
牛逼!Python函數(shù)和文件操作(長文系列第③篇)
牛逼!Python錯誤、異常和模塊(長文系列第④篇)
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的25个好用到爆的一行Python代码,建议收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 突然被工信部重罚!阿里云到底干了啥?
- 下一篇: 全文2500字 详解Pandas与Lam