App下載

10條一行代碼帶你領(lǐng)略Python的魅力

猿友 2020-08-13 17:18:57 瀏覽數(shù) (2342)
反饋

在了解Python并用它寫(xiě)了一次代碼后,它的簡(jiǎn)單性,優(yōu)秀的可讀性和好用的一行代碼深深的吸引了我。接下來(lái),我會(huì)給大家介紹一些一行代碼,或許對(duì)你的Python項(xiàng)目有所幫助。

1.交換兩個(gè)變量

# a = 1; b = 2
a, b = b, a
# print(a,b) >> 2 1

讓我們從一個(gè)經(jīng)典的開(kāi)始:通過(guò)簡(jiǎn)單地交換賦值位置來(lái)交換變量的值——在我看來(lái),這是最直觀的方法。不需要使用臨時(shí)變量。它甚至適用于兩個(gè)以上的變量。

2.多個(gè)變量賦值

a, b, *c = [1,2,3,4,5]
# print(a,b,c) >> 1 2 [3, 4, 5]

交換變量實(shí)際上是python能夠一次分配多個(gè)變量的一種特殊情況。在這里,您可以使用它將列表元素分配給給定的變量,這也稱為解表。 * 將再次打包剩下的值,這將導(dǎo)致c的子列表。它甚至可以用于*的其他位置(例如列表的開(kāi)始或中間部分)。

3.對(duì)列表每隔兩個(gè)元素求和

# a = [1,2,3,4,5,6]
s = sum(a[1::2])
# print(s) >> 12

這里不需要特殊的reduce函數(shù),sum只是添加每個(gè)給定迭代的項(xiàng)。這里使用擴(kuò)展的切片語(yǔ)法[::]來(lái)返回第二個(gè)元素。你可以將它讀為[start: stop: step],所以[1::2]翻譯為從索引 1 的元素開(kāi)始(第二個(gè)元素),直到列表結(jié)束(第二個(gè)參數(shù)沒(méi)有給出參數(shù)),并且總是采取兩步。

(推薦教程:python教程

4.刪除列表多個(gè)元素

# a = [1,2,3,4,5]
del a[::2]
# print(a) >> [2, 4]

擴(kuò)展的切片語(yǔ)法也可以用來(lái)一次刪除多個(gè)列表元素。

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()來(lái)刪除后面的斷線。如果你想保留它們或者它們對(duì)你來(lái)說(shuō)不重要,你可以用更短的一行字:

c = list(open('file.txt'))
# print(c) >> ['test1\n', 'test2\n', 'test3\n', 'test4\n']

Python中讀取文件真的很簡(jiǎn)單。附注:如果愿意,還可以使用readlines()方法。

6.將字符串寫(xiě)入文件

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語(yǔ)句的幫助下,您可以直接將內(nèi)容寫(xiě)入文件。確保使用正確的模式打開(kā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)從其他列表動(dòng)態(tài)創(chuàng)建列表。您可以直接修改值,就像本例中的字符串連接一樣。

8.列表映射

l = list(map(int, ['1', '2', '3']))
# print(l) >> [1, 2, 3]

還可以使用Pythons map()函數(shù)將每個(gè)列表元素強(qiáng)制轉(zhuǎn)換為另一種類(lèi)型。

(推薦微課: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)和條件來(lái)檢查。在Python中,你只需要比較字符串和它的反向字符串。除了使用切片操作符[::-1]之外,您還可以使用reverse()函數(shù)來(lái)反轉(zhuǎn)字符串。

以上就是關(guān)于Python一行代碼的一些知識(shí)了,希望對(duì)大家有所幫助。

英文原文:dev.to/devmount/10-awesome-pythonic-one-liners-explained-3doc

0 人點(diǎn)贊