9個Python一行流小技巧,看完你就知道了
1. ?If - Else??
一行代碼搞定 if-else語句。
age?=?18valid?=?"You're?an?adult"
invalid?=?"You're?NOT?an?adult"
print(valid)?if?age?>=?18?else?print(invalid)
2. 列表推導式
用列表創(chuàng)建列表。[expression?for?item?in?list]
例子:
words?=?['united?states',?'brazil',?'united?kingdom']
capitalized?=?[word.title()?for?word?in?words]>>>?capitalized
['United?States',?'Brazil',?'United?Kingdom']3. 字典推導式
一行代碼創(chuàng)建新字典。
{key:?value?for?key,?value?in?iterable}
例子:
dict_numbers?=?{x:x*x?for?x?in?range(1,6)?}>>>?dict_numbers
{1:?1,?2:?4,?3:?9,?4:?16,?5:25}
4. 連接字典
update() 和?merge()可以鏈接字典,但還可以使用解包操作符**。
dict_1?=?{'a':?1,?'b':?2}
dict_2?=?{'c':?3,?'d':?4}
merged_dict?=?{**dict_1,?**dict_2}>>>?merged_dict
{'a':?1,?'b':?2,?'c':?3,?'d':?4}5. 刪除列表中的重復內容
使用集合去除列表中的重復內容。
numbers?=?[1,1,1,2,2,3,4,5,6,7,7,8,9,9,9]
>>>?list(set(numbers))
[1,?2,?3,?4,?5,?6,?7,?8,?9]
6. 同時給多個變量賦值
小心! 這種方式雖然方便,但不夠直觀,分配的變量較多時,容易出錯。
a,?b,?c?=?1,?"abc",??True>>>?a
1>>>?b
'abc'>>>?c
True
7. 過濾列表中的值
使用 filter()?過濾列表中的值。
filter(function,?iterable)
在filter()內部添加lambda()函數,更靈活、更強大。
my_list?=?[10,?11,?12,?13,?14,?15]
>>>?list(filter(lambda?x:?x%2?==?0,?my_list?))
[10,?12,?14]
8. 按鍵對字典進行排序
不能像列表一樣直接用 sort() 或 sorted() 給字典排序。
但可以把字典推導式與 sorted() 函數結合起來,按鍵排序。
product_prices?=?{'Z':?9.99,?'Y':?9.99,?'X':?9.99}>>{key:product_prices[key]?for?key?in?sorted(product_prices.keys())}
{'X':?9.99,?'Y':?9.99,?'Z':?9.99}
9. 按值排序的字典
(1) 使用 sorted() 函數。
sorted(iterable,?key=None,?reverse=False)
key 參數支持把?lambda()?函數作為排序鍵,示例如下。
population?=?{'美國':329.5,?'巴西':?212.6,?'英國':?67.2}
>>>?sorted(population.items(),?key=lambda?x:x[1])
[('英國',?67.2),?('巴西',?212.6),?('美國',?329.5)]
(2) 使用字典推導式。
population?=?{'美國':329.5,?'巴西':?212.6,?'英國':?67.2}
>>>?{k:v?for?k,?v?in?sorted(population.items(),?key=lambda?x:x[1])}
{'英國':?67.2,?'巴西':?212.6,?'美國':?329.5}
推薦書單
《Python基礎編程入門》

一鍵掃碼購書
隨著人工智能、大數據與云計算的發(fā)展,Python語言得到了越來越多的使用。
本書以工作過程為導向,采用項目驅動的方式組織內容。全書共分8章,第1章介紹了編程語言發(fā)展的歷程及Python開發(fā)環(huán)境的搭建;第2章介紹了Python語言的縮進、注釋、數據類型、字符串、運算符和表達式等;第3章介紹了順序結構、選擇結構和循環(huán)結構等程序控制流程;第4章介紹了列表、元組與字典等數據結構;第5章介紹了Python函數的定義與調用,以及其他高階函數的使用;第6章介紹了Python的模塊與包的使用方法;第7章闡述了Python面向對象的特性;第8章介紹了Python的文件操作與異常處理機制。
本書既可作為大數據、人工智能等相關專業(yè)應用型人才的教學用書,也可以作為Python初學者的學習參考書。
長按關注《Python學研大本營》長按二維碼,加入Python讀者群
評論
圖片
表情
