python zip和enumerate

 

Zip的用法

zip 和 enumerate 是实用的内置函数,可以在处理循环时用到。

zip 返回一个将多个可迭代对象组合成一个元组序列的迭代器。每个元组都包含所有可迭代对象中该位置的元素。例如,

list(zip(['a', 'b', 'c'], [1, 2, 3])) 将输出 [('a', 1), ('b', 2), ('c', 3)].

 

将两个列表组合到一起

letters = ['a','b','c']
nums = [1,2,3]

for letter,num in zip(letters,nums):
    print("{},{}".format(letter,num))

zip()不但可以将两个列表组合到一起,还可以使用星号拆封列表。

some_list = [('a', '1'), ('b', '2'), ('c', '3')]
letters,nums = zip(*some_list)

print(letters,nums)

输出:

('a', 'b', 'c') ('1', '2', '3')

将 cast 元组拆封成两个 names 和 heights 元组。

cast = (("Barney", 72), ("Robin", 68), ("Ted", 72), ("Lily", 66), ("Marshall", 76))

names,heights = zip(*cast)

print(names)
print(heights)
('Barney', 'Robin', 'Ted', 'Lily', 'Marshall')
(72, 68, 72, 66, 76)

Enumerate的用法

enumerate 是一个会返回元组迭代器的内置函数,这些元组包含列表的索引和值。当你需要在循环中获取可迭代对象的每个元素及其索引时,将经常用到该函数。

letters = ['a', 'b', 'c', 'd', 'e']
for i,letter in enumerate(letters):
    print(i,letter)
0 a
1 b
2 c
3 d
4 e

 

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
s = list(enumerate(seasons))
print(s)

输出

[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zip()函数可以将两个或多个列表、元组或其他序列的元素逐个配对,构成一个由元组构成的列表。如果两个序列的元素个数不一样,那么zip()函数会以较短序列的长度为准进行配对。例如,如果list1=['a','b','c','d','e'],seq3=['one','two','three','four','five'],则使用zip()函数配对后的结果为:。 enumerate()函数则是用来枚举一个序列的元素,并返回带有索引的元组。通常情况下,我们会将enumerate()函数与zip()函数一起使用。例如,如果list1=['a','b','c','d','e'],seq3=['one','two','three','four','five'],则可以使用enumerate()和zip()函数来同时枚举两个序列的元素,代码如下: ``` list1 = ['a','b','c','d','e'] seq3 = ['one','two','three','four','five'] for i, (a, b) in enumerate(zip(list1, seq3)): print('{}:({},{})'.format(i, a, b)) ``` 这段代码会输出: ``` 0:(a,one) 1:(b,two) 2:(c,three) 3:(d,four) 4:(e,five) ``` 其中,i表示元素在序列中的索引,a和b分别表示两个序列中配对的元素。通过enumerate()和zip()函数的结合使用,我们可以方便地同时遍历并操作多个序列的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【Python】详解 enumerate + zip 函数](https://blog.csdn.net/qq_39478403/article/details/105839390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Python中的enumerate()和zip()](https://blog.csdn.net/catofblack/article/details/124339134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值