将列表转换为元组对[重复]
Posted
技术标签:
【中文标题】将列表转换为元组对[重复]【英文标题】:Convert list to tuple pair [duplicate] 【发布时间】:2016-01-29 19:18:16 【问题描述】:从列表中创建组合元组的 Pythonic 方法是什么?
例如 来自:
a = [['A','B','C'], ['D', 'E', 'F']]
收件人:
[('A','D'), ('A', 'E'), ..., ('C', 'E'), ('C','F')]
【问题讨论】:
【参考方案1】:使用itertools.product
。如果您有一个列表列表,请使用“splat”运算符*
来解压缩它们。 product
接受任意数量的迭代:
>>> a = [['A', 'B'], ['C', 'D'], ['E', 'F']]
>>> list(itertools.product(*a))
[('A', 'C', 'E'),
('A', 'C', 'F'),
('A', 'D', 'E'),
('A', 'D', 'F'),
('B', 'C', 'E'),
('B', 'C', 'F'),
('B', 'D', 'E'),
('B', 'D', 'F')]
【讨论】:
你可以用list(product(*a))
解压列表
如果我不知道列表的长度,有没有通用的方法?例如a= [['A', 'B'], ['C', 'D'], ['E', 'F']]?
@alnet 是的,只需使用 Akavall 的提示。我会把它添加到答案中。
是的,这是正确的答案。但是以前有人问过并回答过,你们能帮我把这个问题当作骗子吗?【参考方案2】:
使用列表推导:
[(x,y) for x in a[0] for y in a[1]]
【讨论】:
以上是关于将列表转换为元组对[重复]的主要内容,如果未能解决你的问题,请参考以下文章