python - 计算给定列表中所有可能的组合
问题描述
我有一个列表作为list_1 =[[A,B,C,D],[A,D],[B,C,D]]
. 我想要一个输出,例如:
因此,如上所示,我期望列表中存在的所有可能组合的计数。
解决方案
尝试使用它,它将遍历所有列表并使用itertools.combinations计算此列表中所有可能的组合并将数字添加到result
import itertools
list_1 =[["A","B","C","D"],["A","D"],["B","C","D"]]
result = {}
for sublist in list_1:
for L in range(1, len(sublist)+1):
for subset in list(itertools.combinations(sublist, L)):
key = "".join(list(subset))
if key in result:
result[key] += 1
else:
result[key] = 1
如果你想打印它们:
for item in result:
print(item + " => " + str(result[item]))
# Output:
# A => 2
# B => 2
# C => 2
# D => 3
# AB => 1
# AC => 1
# AD => 2
# BC => 2
# BD => 2
# CD => 2
# ABC => 1
# ABD => 1
# ACD => 1
# BCD => 2
# ABCD => 1
推荐阅读
- sql - SQL 根据第二个表在一个表中查找结果
- c# - 尝试使用 SftpClient 使用 Renci.SshNet 下载文件时出现“没有此类文件”错误
- python - 如何打印特定于键的所有值?
- java - 如何使用 ActionListener 从按钮调用面板
- python - 从python 3中的for循环返回所有输出
- python - 如何使用 GRU RNN 正确训练和预测生物量等价值?
- react-native - 在屏幕顶部的视图中居中文本(react-native)
- javascript - 单击动态创建的按钮时,如何在嵌入式 mp4 上暂停播放?
- java - 如何使用spring-data-rest endPoint在angular7中发出http补丁请求?
- reactjs - 在反应选择中重新排序多选