欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python列表生成式和字典生成式實(shí)例

 更新時(shí)間:2024年06月21日 10:40:30   作者:程序員的戰(zhàn)歌  
這篇文章主要介紹了Python列表生成式和字典生成式實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

列表生成式

格式

[ x  for  x in 可迭代對(duì)象]
[ x  for  x in 可迭代對(duì)象 if 條件]

1. 把要生成的元素 x 放到前面,執(zhí)行的時(shí)候,先執(zhí)行后面的for循環(huán)。

2. 后面跟上for循環(huán),可以有多個(gè)for循環(huán),也可以在for循環(huán)后面再加個(gè)if條件。

3. for循環(huán)后面可以是任何方式的迭代器(元組/列表/生成器..),只要可迭代對(duì)象的元素中至少有一個(gè)值。

例1:最簡單的

In [1]: [x for x in 'abcd']
Out[1]: ['a', 'b', 'c', 'd']

例2:加if判斷

In [1]: res = [10,11,12,13]
In [2]: [x for x in res if x > 10]
Out[2]: [11, 12, 13]

原生實(shí)現(xiàn):
In [1]: arr = []
In [2]: for x in res:
  ....:     if x > 10:
  ....:         arr.append(x)
  ....:         
In [3]: arr
Out[3]: [11, 12, 13]

例3:迭代字典生成列表

print [v for k,v in {'a':'one','b':'two'}.items()]
輸出:['one', 'two']

print [(k,v) for k,v in {'a':'one','b':'two'}.items()]
輸出:[('a', 'one'), ('b', 'two')]

print [k+'='+v for k,v in {'name':'lyz','age':'26','job':'IT'}.items()]
輸出:['job=IT', 'age=26', 'name=lyz']

字典生成式

格式

1. 在Python2.6或更早的版本,字典生成器可以接受迭代的鍵/值對(duì)。

d = dict((key, value) for (key, value) in iterable)

說明:

第一個(gè)k,v的()必須寫,第二個(gè)()可不寫。

2.6版本就是利用dict()函數(shù),函數(shù)的參數(shù)是一個(gè)嵌套的序列,序列的元素是元組。

2. 從Python2.7或者3以后,你可以直接用字典推導(dǎo)式語法。

d = {key: value for (key, value) in iterable} # k,v的()可以不寫

3. python2.7以上兼容兩種寫法,python2.6只能用第一種。

4. 可以用任何方式的迭代器(元組,列表,生成器..),只要可迭代對(duì)象的元素中有兩個(gè)值。

python2.7寫法

dict1 = {'one':1,'two':2,'three':3}
dict2 = {v:k for k,v in dict1.items()}
print dict2
輸出:
{1: 'one', 2: 'two', 3: 'three'}

python2.6寫法

dict1 = {'one':1,'two':2,'three':3}
dict3 = dict((v,k) for k,v in dict1.items())
print dict3
輸出:
{1: 'one', 2: 'two', 3: 'three'}

例1:兩種生成式方式生成字典

In [1]: arr=['wd','18','nan']
In [2]: dict((k,v) for k,v in enumerate(arr))
Out[2]: {0: 'wd', 1: '18', 2: 'nan'}
In [3]: {k:v for k,v in enumerate(arr)}
Out[3]: {0: 'wd', 1: '18', 2: 'nan'}

例2:線上實(shí)例

arr = [{'id':1,'name':'lyz','age':26},{'id':2,'name':'pc','age':30}]
print {str(x['id']):x['name'] for x in arr}
執(zhí)行結(jié)果:
{'1': 'lyz', '2': 'pc'}

其他生成字典的方法

1. dict()函數(shù)

嵌套元組和嵌套類別可以直接通過dict命令轉(zhuǎn)為字典(嵌套內(nèi)部的元素只能是2個(gè))

>>> a = [(1, 'ab'), (2, 'bc')]
>>> dict(a)
{1: 'ab', 2: 'bc'}

>>> result = ((1, 'ab'), (2, 'bc'))
>>> dict(result)
{1: 'ab', 2: 'bc'}

2. zip()函數(shù)

將多個(gè)元組或列表合并,合并規(guī)則是每個(gè)元組元素個(gè)數(shù)一致

In [1]: zip(('name','age','sex'),('wd','18','nan'))
Out[1]: [('name', 'wd'), ('age', '18'), ('sex', 'nan')]

In [2]: zip(['name','age','sex'],['wd','18','nan'])
Out[2]: [('name', 'wd'), ('age', '18'), ('sex', 'nan')]

In [3]: dict(zip(('name','age','sex'),('wd','18','nan')))  # 生產(chǎn)環(huán)境最常用
Out[3]: {'age': '18', 'name': 'wd', 'sex': 'nan'}

In [4]: zip(['name','age','sex'],['wd','18','nan'],['11',22])  # 列表元素個(gè)數(shù)不一致,以最少對(duì)列表為準(zhǔn)
Out[4]: [('name', 'wd', '11'), ('age', '18', 22)]

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python操作Access數(shù)據(jù)庫基本步驟分析

    Python操作Access數(shù)據(jù)庫基本步驟分析

    這篇文章主要介紹了Python操作Access數(shù)據(jù)庫基本步驟,結(jié)合實(shí)例形式詳細(xì)分析了Python針對(duì)access操作的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-09-09
  • Python list sort方法的具體使用

    Python list sort方法的具體使用

    list.sort()方法是Python的列表方法,用于對(duì)原列表進(jìn)行排序。本文詳細(xì)的介紹了list.sort的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • 在python中使用with打開多個(gè)文件的方法

    在python中使用with打開多個(gè)文件的方法

    今天小編就為大家分享一篇在python中使用with打開多個(gè)文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 基于python實(shí)現(xiàn)圖書管理系統(tǒng)

    基于python實(shí)現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于python實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • python寫入csv時(shí)writerow()和writerows()函數(shù)簡單示例

    python寫入csv時(shí)writerow()和writerows()函數(shù)簡單示例

    這篇文章主要給大家介紹了關(guān)于python寫入csv時(shí)writerow()和writerows()函數(shù)的相關(guān)資料,writerows和writerow是Python中csv模塊中的兩個(gè)函數(shù),用于將數(shù)據(jù)寫入CSV文件,需要的朋友可以參考下
    2023-07-07
  • Python?Flask框架實(shí)現(xiàn)小紅書圖片無水印解析下載

    Python?Flask框架實(shí)現(xiàn)小紅書圖片無水印解析下載

    這篇文章主要為大家介紹了Python?Flask框架實(shí)現(xiàn)小紅書圖片無水印解析下載,需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • python?包之?threading?多線程

    python?包之?threading?多線程

    這篇文章主要介紹了python?包之?threading?多線程,文章通過實(shí)例化threading.Thread類創(chuàng)建線程,下文相關(guān)資料介紹,需要的朋友可以參考一下
    2022-04-04
  • Python利用QQ郵箱發(fā)送郵件的實(shí)現(xiàn)方法(分享)

    Python利用QQ郵箱發(fā)送郵件的實(shí)現(xiàn)方法(分享)

    下面小編就為大家?guī)硪黄狿ython利用QQ郵箱發(fā)送郵件的實(shí)現(xiàn)方法(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • django 郵件發(fā)送模塊smtp使用詳解

    django 郵件發(fā)送模塊smtp使用詳解

    這篇文章主要介紹了django 郵件發(fā)送模塊smtp使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python裝飾器常見使用方法分析

    python裝飾器常見使用方法分析

    這篇文章主要介紹了python裝飾器常見使用方法,結(jié)合實(shí)例形式分析了Python裝飾器的功能及三種常見的裝飾模式使用技巧,需要的朋友可以參考下
    2019-06-06

最新評(píng)論