摘要:都說 Python 簡單快捷,那本篇博客就為大家帶來一些實用的 Python 技巧,而且僅需要 1 行代碼,就可以解決一些小問題,
本文分享自華為云社區《你猜 1 行Python代碼能干什么呢?神奇的單行 Python 代碼》,作者:夢想橡皮擦,
1 行代碼的由來
都說 Python 簡單快捷,那本篇博客就為大家帶來一些實用的 Python 技巧,而且僅需要 1 行代碼,就可以解決一些小問題,
所有的 1 行代碼,全部依據標準的 Python 語言規范實作,
串列推導式
生成器語法絕對是 Python 帶給我們的優質語法糖,它可以基于現有的串列創建一個新的串列,而且語法格式簡單,
students = ["橡皮擦","橡皮擦大","大橡皮擦","夢想橡皮擦"] new_students = [name for name in students if name.startswith("橡皮")] print(new_students)
上述代碼的第二行,在原有串列中過濾出全新的串列,而且語法簡單,基于該語法結構,還有字典推導式,集合推導式相關知識點,都可以使用 1 行代碼完成目標需求,可以學習來,
合并字典
在 Python 實戰中,有時需要將兩個字典進行合并,最常用的是使用 update() 方法,或者 merge() 函式,當然也有工程師使用剛剛提及的字典推導式實作,那有沒有更加簡潔的寫法呢?可以看下述代碼
my_dict_1 = {'red': '紅色', 'green': '綠色'}
my_dict_2 = {'blue': '藍色', 'yellow': '黃色'}
merged_dict = {**my_dict_1, **my_dict_2}
print(merged_dict)
其中 ** 符號是解包運算子,即將字典中的內容拆解,解包之后就可以參照上述代碼使用 {} 合并字典,當然也可以直接使用 dict() 函式進行合并
my_dict_1 = {'red': '紅色', 'green': '綠色'}
my_dict_2 = {'blue': '藍色', 'yellow': '黃色'}
merged_dict = dict(**my_dict_1, **my_dict_2)
print(merged_dict)
如果你一時沒有轉換過來,那可以使用下述代碼進行轉換,即使用元素拼接技巧,先將字典轉換為 list,然后連接,
my_dict_1 = {'red': '紅色', 'green': '綠色'}
my_dict_2 = {'blue': '藍色', 'yellow': '黃色'}
merged_dict = dict(list(my_dict_1.items()) + list(my_dict_2.items()))
print(merged_dict)
串列去重
在實戰中,也會碰到串列去重的情況,如果串列資料量不大,可以直接使用 set() 函式去重,即利用集合不允許包含重復值這一特性,
names = ["橡皮擦","橡皮擦大","大橡皮擦","夢想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","夢想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","夢想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","夢想橡皮擦"]
un_list = list(set(names)) print(un_list)
一行代碼交換變數值
這也是 Python 中的語法糖了,在做排序類演算法時經常碰到,使用一行代碼進行變數值的交換,
a = 1 b = 2 a, b = b, a print(a, b)
在此基礎上,可以擴展到更多變數,此時還會衍生出另一個一行代碼知識點,即一行代碼為多個變數賦值,示例代碼如下所示:
a, b, c, d = 1, 2, 3, 4 (a, b), (c, d) = (b, a), (d, c) print(a, b, c, d)
利用 print 輸出日志到檔案
撰寫代碼經常要測驗輸出結果,因此會大量的使用到 print 函式,而這些結果默認會輸出到控制臺,關閉程式運行之后,結果就消失了,實踐中,可以利用一下 print 函式的第二個引數,實作將輸出寫入到檔案中,
print("Hello, World!", file=open('ca.txt', 'w'))
轉置矩陣
對矩陣進行轉置,也可以使用一行代碼實作,
old_list = [[1, 2], [3, 4]] print(list(zip(*old_list)))
但上述代碼會將串列轉換成元組,如果不希望該情況出現,可以使用下述代碼,依舊是一行,
old_list = [[1, 2], [3, 4]] print(list(list(x) for x in zip(*old_list)))
一行喪心病狂的代碼
除了正常的操作外,在 Python 中還能實作一些神奇的操作,例如下述代碼:
print(eval(input()))
可以輸入單行代碼,然后直接輸出結果!
該代碼最佳的實踐是一行代碼實作一個計算器,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/503344.html
標籤:其他
