加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python遍历两个列表

发布时间:2020-12-20 12:39:58 所属栏目:Python 来源:网络整理
导读:我在教程中找到了这个很好的陈述: for x,y in [(x,y) for x in listA for y in listB]: 现在,就我而言,我明白,该规则将遍历listA和listB,x是列表A的值,y是listB中的值.但在这个例子中,两个列表具有相同的长度.如果一个列表比另一个列表长,或者我必须使用不
我在教程中找到了这个很好的陈述:

for x,y in [(x,y) for x in listA for y in listB]:

现在,就我而言,我明白,该规则将遍历listA和listB,x是列表A的值,y是listB中的值.但在这个例子中,两个列表具有相同的长度.如果一个列表比另一个列表长,或者我必须使用不同的语句,这个语句是否也会给我所有对?

提前致谢.

解决方法

代码根据您的建议计算笛卡尔积( itertools.product),而不是 zip.

例如,如果输入为[1,2,3]和[4,5],则结果为:

(1,4)
(1,5)
(2,4)
(2,5)
(3,4)
(3,5)

为了比较,zip([1,3],[4,5])的结果是:

(1,5)

如您所见,zip(或itertools.izip)会丢弃较长参数中的其他项.

其变体itertools.izip_longest用任意值替换这些缺失的元素.例如,iterttools.izip_longest([1,99)返回:

(1,99)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读