1. 程式人生 > 其它 >字典推導式 enumerate zip

字典推導式 enumerate zip

字典推導式
# 一.enumerate
"""
enumerate(iterable,[start=0])
功能:列舉 ; 將索引號和iterable中的值,一個一個拿出來配對組成元組,通過迭代器返回
引數:
iterable: 可迭代性資料 (常用:迭代器,容器型別資料,可迭代物件range)
start: 可以選擇開始的索引號(預設從0開始索引)
返回值:迭代器
"""

# 基本語法
from collections import Iterator,Iterable
lst =["王文","呂洞賓","何仙姑","鐵柺李","張國老","曹國舅","藍采和","韓湘子"]
it = enumerate(lst)
it = enumerate(lst,start=100)
print(isinstance(it,Iterator))

# next
print( next(it) )

# for + next (推薦,資料較大時使用)
for i in range(3):
print(next(it))

# for
for i in it:
print(i)

# list 強轉迭代器
print(list(it))

# (1) 字典推導式 配合 enumerate 來實現
dic = {k:v for k,v in enumerate(lst,start=100)}
print(dic)
"""
(100, '王文')
(101, '呂洞賓')
(102, '何仙姑')
(103, '鐵柺李')
(104, '張國老')
(105, '曹國舅')
(106, '藍采和')
(107, '韓湘子')
"""

# (2) 使用dict強轉迭代器,瞬間得到字典
dic = dict( enumerate(lst,start=100) )
print(dic)

### 二.zip
"""
特點:按照索引配對
zip(iterable, ... ...)
功能: 將多個iterable中的值,一個一個拿出來配對組成元組,通過迭代器返回
iterable: 可迭代性資料 (常用:迭代器,容器型別資料,可迭代物件range)
返回: 迭代器
"""
# 基本語法
# lst1 = ["孫開啟","王永飛","於朝志"]
# lst2 = ["薛宇健","韓瑞曉","上朝氣"]
# lst3 = ["劉文博","歷史園","張光旭"]

# 在索引下標同時存在時,才會進行配對,否則捨棄.
lst1 = ["孫開啟","王永飛","於朝志"]
lst2 = ["薛宇健","韓瑞曉"]
lst3 = ["劉文博"]

it = zip(lst1,lst2,lst3)
print(list(it))

# (1) 字典推導式 配合 zip 來實現
lst_key = ["ww","axd","yyt"]
lst_val = ["王維","安曉東","楊元濤"]

# ('ww', '王維'), ('axd', '安曉東'), ('yyt', '楊元濤')
dic = {k:v for k,v in zip(lst_key , lst_val) }
print(dic)

# (2) 使用dict強轉迭代器,瞬間得到字典
dic = dict( zip(lst_key , lst_val) )
print(dic)