python中的列表生成式 | 字典生成式
1.列表生成式
列表生成式即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]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]
怎麼做?方法一是迴圈:
>>> L = []
>>> for x in range(1, 11):
... L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是迴圈太繁瑣,而列表生成式則可以用一行語句代替迴圈生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 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, 36, 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可以列出檔案和目錄
['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']
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中所有的字串變成小寫:
>>> L = ['Hello', 'World', 'IBM', 'Apple']
>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']
2.字典生成式
d = {key: value for (key, value) in iterable}
其中iterable是一個可迭代的物件,比如list
org_dict = {'x': 1, 'y': 2, 'z': 3}
new_dict = {v: k for k,v in some_dict.items()}
參考資料來源於:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431779637539089fd627094a43a8a7c77e6102e3a811000
相關推薦
Python中列表(list)、字典(dict)排序的程序
self. 能夠 網站 軟件 too 字段 tool 生成 ted Python3 中的排序,在 Sorting HOW TO 中已經講得很清楚了。來個實際的例子,對下面的這個 list 依據創建時間排序: pages = [{‘title‘: ‘十年學會程序設計‘, ‘
python中列表 元組 字典 集合的區別
列表 元組 集合 字典 英文 list tuple set dict 定義 定義[],資料之間使用,分割 定義
python中的列表生成式 | 字典生成式
1.列表生成式 列表生成式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的生成式。 舉個例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))
函數 三元表達式 列表生成式 字典生成式 生成器表達式
生成器 next 返回 生成 一個 Go pre 而是 def 1、三元表達式 針對 if 條件判斷的簡寫 可以比較下比如: def max2(x,y): if x > y: return x else: retur
python 中列表推導式的練習
print("~"*100) # print("python中的列表推導式的練習") # # list = [ i for i in range(1,10)] # print(list) # list = [i*i for i in range(1,10)] # print
Python中特殊函數和表達式 filter,map,reduce,lambda
result before positive ply sequence items closed 默認 hid 1. filter 官方解釋:filter(function or None, sequence) -> list, tuple, or string Re
python中列表,字典等必須要註意的事項
col mos 輸出 lin 存儲 int file for projects 1.python中的列表不能夠遍歷刪除 1 #python列表我們不能夠遍歷刪除 2 li = [1, 2, 3, 4, 5, 6] 3 for i in range(len(li)):
python中常用的正則表達式符號
birt name eee dot 列表 數字 lin bbc dict ‘.‘ 默認匹配除\n之外的任意一個字符,若指定flag DOTALL,則匹配任意字符,包括換行 ‘^‘ 匹配字符開頭,若指定flags MULTILINE,這種也可以匹配上(r"^
Python中列表,元組,字典,集合的區別
參考文件https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元組,字典,集合的區別 列表,元組,字典,集合的區別是python面試中最常見的一個問題。這個問題雖然很基礎,但確實能反映出面試者的基礎水平。 1.列表(Lis
Python中列表,元組,字串,字典型別的區別
1.Python中的list列表是可以原地修改的; 也就是對list修改後,還在原來的記憶體位置上。 >>> a=[1,2,9,8,7] >>> id(a) 55947912L >>> b=[4,5,6] &
python中列表,元祖,字典,集合的區別
一.前言 一直想寫寫這四種類型的相同點,與不同點在哪裡,以及在什麼情況下應該使用哪種型別。無奈水平不夠,怕寫出來不夠深刻,所以一直拖著。今天想了想還是寫出來吧,如果以後還有新的見解或者技巧我會繼續更上去的。 二.列表(list) 具有以下特點: 1.可以用list()函式
python中列表、元組、字典和集合
列表、元組、字典和集合 1.列表和元組。 Python中列表list和元組tuple都是表示元素序列甚至都不要求表示的元素型別一樣。都是按照下標進行存取操作,最大的不同是元組裡面的值確定之後,不能修改。 列表的建立: Empty_list=[]空列表。 Week
python中列表和字典排序
Python 列表內建 list.sort() 方法實現原地排序,同時 Python 還提供 sorted() 函式返回對可迭代物件排序後的新列表。 首先匯入可能需要的模組: # coding:utf-8 import operator import collection
python中列表、字典和map,lambda函式的操作淺析新
一:一些簡單的操作列表切片a=[1,2,3,4,5,6,7,8] a[1:] [2, 3, 4, 5, 6, 7, 8] a[::-1] [8, 7, 6, 5, 4, 3, 2, 1] a[2:4] [3, 4] a[::-2] [8, 6, 4, 2] a[-3:-1]
python中列表、元組及字典的排序
0 序言 首先介紹,在Python排序中,常用的兩個排序函式是sort()和sorted()。在講列表、元組和字典的排序之前,有必介紹這兩個函式。下面基於Python3,檢視該函式的引數值。(Python2和Pyhton3對這兩函式的引數設定有所差別) 在P
Python中列表和字典的區別以及適用的場景
從應用場景來說: list 是記錄簡單有序資料的,就是一對一的那種,可以理解為一維陣列. 比如你記錄貓的名字,就可以用list = ['第1只貓名字','第2只貓名字'] ... 比如你記錄飯店的菜品,就可以用list = ['第1個菜紅燒肉','第2個菜紅燒大腸',第3個菜'紅燒排骨'] ... 這裡的記
Python中列表,字典,集合常用方法彙總
關於字典的方法: 一.不支援下標,不支援排序。 二.建立字典的方法: 1.手動建立字典 dict1 = {},dict3=dict() dict4 = dict(name='gui',age=30)
python中列表,元祖,字典,集合區別和使用方法
列表是方括號 [],元組是圓括號 (),字典是花括號 {}。 列表:可重複,型別可相同可不同,有序 ,用[]表示,用逗號分隔 索引: n = 0,1,2....-1 list [n] 新增:1. 在末尾新增 list.append ( ' new ' )
Python中列表、元組、字典、集合與字串,相關函式,持續更新中……
> 本篇部落格為博主第一次學 Python 所做的筆記(希望讀者能夠少點浮躁,認真閱讀,平心靜氣學習!) **補充:** - 列表、元組和字串共同屬性: - 屬於有序序列,其中的元素有嚴格的先後順序 - 都支援雙向索引,索引範圍 [ -L, L-1 ] ,L -- 表示列表、元組和字串的長度(分正向索引
python中經常使用的字典內建函數
哈希 popu blog default app ping 復制 none you 1、len(mapping) 返回映射的長度(鍵-值對的個數) 2、hash(obj) 返回o