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''
'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編碼,字母 標點和其他字元只使...