用zip函数同时遍历两个迭代器

在编写Python代码时,我们通常要面对很多列表,而这些列表里的对象,可能也是相互关联的。通过列表推导,很容易能根据某个表达式从源列表推算出一份派生类表。

names = ['GGG','HH','SSSS']
letters = [len(n) for n in names]

longest_name = None
max_letters = 0
for i in range(len(names)):
	count = letters[i]
	if count > max_letters:
		longest_name = names[i]
		max_letters = count

print(longest_name)

输出为:
在这里插入图片描述
这段代码的缺点在于循环语句看上去很乱,不易理解。

使用Python的zip函数,可以是代码更为简洁。在Python3中的zip函数,可以把两个或两个以上的迭代器封装为生成器,以便稍后求值。这种zip生成器,会从每个迭代器中获取该迭代器的下一个值,然后把这些值汇聚成元组,与通过下标来访问多份列表的写法相比,用zip更简洁清晰。

names = ['GGG','HH','SSSS']
letters = [len(n) for n in names]

longest_name = None
max_letters = 0
for name,count in zip(names,letters):
	if count > max_letters:
		longest_name = name
		max_letters = count

print(longest_name)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值