python - Python中嵌套列表中的列表组合
问题描述
我有一个 [['a','b','c','d'], ['a','c','d'], ['b','d',' 形式的列表e','f','g','h'], ... ,['c','d','a','b']] 我必须组合每个嵌套列表的元素(分别)在 2 元组中形成单个 2 元组列表。我试图用下面的代码来做,但它只结合了第一个列表的元素:
def totwotuples(my_list):
for i in range(len(my_list)):
for j in range(len(my_list[i])):
twotuples = itertools.combinations(my_list[i], 2)
return[k for k in twotuples]
如何遍历所有嵌套列表?为了得到这个预期的输出(例如前两个嵌套列表): [('a','b'), ('a','c'), ('a','d'), ('b ','c'), ('b','d'), ('c','d'), ('a','c'), ('a','d'), ('c ','d'), ...]
解决方案
您可以使用itertools.chain
或itertools.chain.from_iterable
组合子列表中的结果。
import itertools
lst = [['a','b','c','d'], ['a','c','d']]
output = itertools.chain.from_iterable(itertools.combinations(sublst, r=2) for sublst in lst)
output = list(output) # convert to a list
print(output) # [('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd'), ('a', 'c'), ('a', 'd'), ('c', 'd')]
推荐阅读
- json - 用于更新地图的 REST API 是否应该允许将地图设置为空?
- python - 请求库为 API Post 发送 json
- apache-kafka - 基于事件时间的 KTable 过滤和更新是否可行?
- gstreamer - Gstreamer将相机视频输入保存到文件返回空文件
- r - 计算最大日期间隔 - R
- go - 使用 VGO 和 go.mod 找不到 Go 模块
- r - MXNET softmax 输出:标签形状混淆
- python - 制作简单的文字rpg,出现属性错误?
- python - 选择性复制 - 自动化无聊的东西
- python - 将熊猫索引名称中的“alpha”和“beta”替换为希腊字符