python怎么样另存为_python要怎么保存python生成式
本篇將介紹Python的列表生成式,更多內容請參考:Python列表生成式
列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。
舉個例子,要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))
>>>list(range[1, 11])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10,]
但是要生成[1×1, 2×2, 3×3, 4×4,..., 10×10]怎么做?方法一是循環:
>>>L = []
>>>for x in range(1, 11):
L.append(x * x)
>>>L
[1, 4 ,9 ,16, ..., 100]
但是循環太繁瑣,而列表生成式則可以用一行語句代替循環生成上面的list:
>>>[x*x for x in range(1, 11)]
[1, 4, 16, 25, 36, 49, 64, 81, 100]
寫列表生成式時,把要生成的元素x * x放在前面,后面跟for循環,就可以把list創建出來,十分有用,多寫幾次,很快就可以熟悉這種語法。
for循環后面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:
>>>[x*x for x in range(1, 11) if x % 2 == 0]
[4, 16, 64, 100]
還可以使用兩層循環,還可以生成全排列:
>>>[m+n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
三層和三層以上的循環就很少使用了。
運用列表生成式,可以寫出非常簡潔的代碼。例如,列出當前目錄下的所有文件和目錄名,可以通過一行代碼實現:
>>>import os #導入os模塊
>>>[d for d in os.listdir('.')] #os.listdir可以列出文件和目錄
for循環其實可以同時使用兩個甚至多個變量,比如dict的items()可以同時迭代key和value:
>>>d = {'X':'A', 'y':'B', 'z':'C'}
>>>for k, v in d.items():
print(k, '=', 'v')
y = B
x = A
z = C
因此,列表生成式也可以使用兩個變量來生成list:
>>>d = {'x':'A', 'y':'B', 'z':'C'}
>>>[k+= ' ='+v for k, v in d.items()]
['y=B', 'x=A', 'z=C']
最后把一個list中所有的字符串變成小寫:
W WW.002pc .COM對《python要怎么保存python生成式》總結來說,為我們學習Python很實用。>>>L = ['Hello', 'World', 'IBM', 'Apple']
>>>[s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']
復雜表達式
1、使用for循環的迭代不僅可以迭代普通的list,還可以迭代dict。
假設有如下的dict:
d = {'Adam':95, 'Lisa':85, 'Bart':59}
完全可以通過一個復雜的列表生成式把它變成一個HTML表格:
tds = ['
%s%s'%(name, score) for name, score in d.items()]print('
print('
NameScore')print '\n'.join(tds)
print('
')注意:字符串可以通過%進行格式化,用指定的參數替代%s。字符串的join()方法可以把一個list拼接成一個字符串。
2、在生成的表格中,對于沒有及格的同學,請把分數標記為紅色。
d = {'Adam':95, "Lisa":85, "Bart":59}
def generate_tr(name, score):
if score < 60:
return '
%s%s' %s(name, score)return '
NameScore'%(name, score)tds = [generate_tr(name, score) for name, score in d.items()]
print('
print('\n'.join(tds))
print('
')3、條件過濾
列表生成式的for循環后面還可以加上if判斷,例如:
>>>[x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
如果我們只想要偶數的平方,不改動range()的情況下,可以加上if來篩選:
>>>[x*x for x in range(1, 11) if x % 2 == 0]
[4, 16, 64, 100]
有了if條件,只有if判斷為True的時候,才把循環的當前元素添加到列表中。
編寫一個函數,它接收一個list,然后把list中的所有字符串變成大寫后返回,非字符串元素將被忽略。
[x.upper() for x in L if isinstance(x, str)]
參考
列表生成式--學習筆記
廖雪峰-生成式
更多:python要怎么保存python生成式
https://www.002pc.comhttps://www.002pc.com/python/3907.html
你可能感興趣的生成式,python
No alive nodes found in your cluster
0踩
賞
0 贊
總結
以上是生活随笔為你收集整理的python怎么样另存为_python要怎么保存python生成式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超火的真人出镜微课录制方法真人出镜微课视
- 下一篇: 怎么用ai做出适量插画_怎么用最简单的方