Python2X學習16 python 列表

2022-09-03 02:18:13 字數 1674 閱讀 6094

1、生成列表

要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我們可以用range(1, 11):

print range(1, 11) #

==> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

列表生成式則可以用一行語句代替迴圈生成:

l = [x * x for x in range(1, 11)]

print l #

==> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

這種寫法就是python特有的列表生成式。利用列表生成式,可以以非常簡潔的**生成 list。

寫列表生成式時,把要生成的元素 x * x 放到前面,後面跟 for 迴圈,就可以把list建立出來,十分有用,多寫幾次,很快就可以熟悉這種語法。

2、複雜表示式

使用for迴圈的迭代不僅可以迭代普通的list,還可以迭代dict。

假設有如下的dict:

d = 

tds = ['

%s%s

' % (name, score) for name, score in

d.iteritems()]

print''

print

'name

score

'print'\n

'.join(tds)

print''

#==>

#==> name

score

#==> adam95#

==> lisa85#

==> bart59#

==>

注:字串可以通過 % 進行格式化,用指定的引數替代 %s。字串的join()方法可以把乙個 list 拼接成乙個字串。

3、條件過濾

列表生成式的 for 迴圈後面還可以加上 if 判斷。例如:

l = [x * x for x in range(1, 11)]

print l #

==> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

如果我們只想要偶數的平方,不改動 range()的情況下,可以加上 if 來篩選:

l = [x * x for x in range(1, 11) if x % 2 ==0]

print l #

==> [4, 16, 36, 64, 100]

有了 if 條件,只有 if 判斷為 true 的時候,才把迴圈的當前元素新增到列表中。

4、多層表示式

for迴圈可以巢狀,因此,在列表生成式中,也可以用多層 for 迴圈來生成列表。

對於字串 'abc' 和 '123',可以使用兩層迴圈,生成全排列:

l = [m + n for m in

'abc

'for n in

'123']

print l #

==> ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']

翻譯成迴圈**就像下面這樣:

l =for m in

'abc':

for n in

'123':

Python2X學習4 python變數

變數是用乙個變數名表示,變數名必須是大小寫英文 數字和下劃線 的組合,且不能用數字開頭 a 1t 007 t007 在python中,等號 是賦值語句,可以把任意資料型別賦值給變數,同乙個變數可以反覆賦值,而且可以是不同型別的變數 a 123 a是整數 print aa imooc a變為字串 pr...

Python2 X輸入函式

mystr raw input 請輸入指令 import os os.system mystr 執行結果 ps input返回的是數值型別,如int,float raw inpout返回的是 字串型別 string型別 若輸入是表示式,則input會計算出表示式的值,而raw input會原樣輸出 ...

Python2 x中文亂碼問題

python中亂碼問題是乙個很頭痛的問題。在python3中,對中文進行了全面的支援,但在python2.x中需要進行相關的設定才能使用中文。否則會出現亂碼 問題原因 在python2.x中主要是字元編碼的問題,處理不好的話,會導致亂碼。python預設採取的ascii編碼,字母 標點和其他字元只使...