在了解Python
并用它寫了一次代碼后,它的簡單性,優(yōu)秀的可讀性和好用的一行代碼深深的吸引了我。接下來,我會給大家介紹一些一行代碼,或許對你的Python
項目有所幫助。
1.交換兩個變量
# a = 1; b = 2
a, b = b, a
# print(a,b) >> 2 1
讓我們從一個經(jīng)典的開始:通過簡單地交換賦值位置來交換變量的值——在我看來,這是最直觀的方法。不需要使用臨時變量。它甚至適用于兩個以上的變量。
2.多個變量賦值
a, b, *c = [1,2,3,4,5]
# print(a,b,c) >> 1 2 [3, 4, 5]
交換變量實際上是python
能夠一次分配多個變量的一種特殊情況。在這里,您可以使用它將列表元素分配給給定的變量,這也稱為解表。 *
將再次打包剩下的值,這將導(dǎo)致c
的子列表。它甚至可以用于*
的其他位置(例如列表的開始或中間部分)。
3.對列表每隔兩個元素求和
# a = [1,2,3,4,5,6]
s = sum(a[1::2])
# print(s) >> 12
這里不需要特殊的reduce
函數(shù),sum
只是添加每個給定迭代的項。這里使用擴(kuò)展的切片語法[::]
來返回第二個元素。你可以將它讀為[start: stop: step]
,所以[1::2]
翻譯為從索引 1 的元素開始(第二個元素),直到列表結(jié)束(第二個參數(shù)沒有給出參數(shù)),并且總是采取兩步。
(推薦教程:python教程)
4.刪除列表多個元素
# a = [1,2,3,4,5]
del a[::2]
# print(a) >> [2, 4]
擴(kuò)展的切片語法也可以用來一次刪除多個列表元素。
5.將文件讀入行數(shù)組
c = [line.strip() for line in open('file.txt')]
# print(c) >> ['test1', 'test2', 'test3', 'test4']
使用python
內(nèi)聯(lián)for
循環(huán),您可以輕松地將文件讀入行數(shù)組中。需要使用strip()
來刪除后面的斷線。如果你想保留它們或者它們對你來說不重要,你可以用更短的一行字:
c = list(open('file.txt'))
# print(c) >> ['test1\n', 'test2\n', 'test3\n', 'test4\n']
在Python
中讀取文件真的很簡單。附注:如果愿意,還可以使用readlines()
方法。
6.將字符串寫入文件
with open('file.txt', 'a') as f: f.write('hello world')
# print(list(open('file.txt'))) >> ['test1\n', 'test2\n', 'test3\n', 'test4\n', 'hello world']
在With
語句的幫助下,您可以直接將內(nèi)容寫入文件。確保使用正確的模式打開文件(這里“a”表示附加內(nèi)容)。
7.創(chuàng)建列表
l = [('Hi ' + x) for x in ['Alice', 'Bob', 'Pete']]
# print(l) >> ['Hi Alice', 'Hi Bob', 'Hi Pete']
可以使用內(nèi)聯(lián)for
循環(huán)從其他列表動態(tài)創(chuàng)建列表。您可以直接修改值,就像本例中的字符串連接一樣。
8.列表映射
l = list(map(int, ['1', '2', '3']))
# print(l) >> [1, 2, 3]
還可以使用Pythons map()
函數(shù)將每個列表元素強(qiáng)制轉(zhuǎn)換為另一種類型。
(推薦微課:python3基礎(chǔ)微課)
9.集合創(chuàng)建
squares = { x**2 for x in range(6) if x < 4 }
# print(squares) >> {0, 1, 4, 9}
集合也是一樣的。除了內(nèi)聯(lián)for
循環(huán)之外,您甚至可以直接添加條件!
10.回文檢查
# phrase = 'deleveled'
isPalindrome = phrase == phrase[::-1]
# print(isPalindrome) >> true
回文是一系列向前和向后讀取相同的字符。如果給定字符串是回文,通常需要一些循環(huán)和條件來檢查。在Python
中,你只需要比較字符串和它的反向字符串。除了使用切片操作符[::-1]
之外,您還可以使用reverse()
函數(shù)來反轉(zhuǎn)字符串。
以上就是關(guān)于Python
一行代碼的一些知識了,希望對大家有所幫助。
英文原文:dev.to/devmount/10-awesome-pythonic-one-liners-explained-3doc