如何解决如何将列表的所有可能组合放入字典中,例如 (a,b) 和 (b,a)?
我的代码有问题:
from collections import Counter
from collections import defaultdict
from itertools import combinations
def findPairs(pair_counts,n):
pair_counts = dict()
count = Counter(combinations(n,2))
for key,value in count.items():
pair_counts[key] = value
print(pair_counts)
nums = [2,3,7]
#n = len(nums)
findPairs(pair_counts,nums)
{(2,3): 1,(2,7): 1,(3,7): 1}
但我希望它提供看起来更像的输出:
{(2,2):1,(7,3):1)}
提前致谢
解决方法
正如我在评论中提到的,您需要 permutations
而不是 combinations
中的 itertools
。下面的代码有效。如果您的目标是简单地获得计数字典,您可以简单地执行 dict(Counter(...))
将其转换为 dict。
此外,删除了一些不必要的代码行。
from collections import Counter
from itertools import permutations
def findPairs(n):
###
pair_counts = dict()
count = dict(Counter(permutations(n,2)))
print(count)
nums = [2,3,7]
findPairs(nums)
# Output
# {(2,3): 1,(2,7): 1,(3,2): 1,(7,3): 1}
,
使用排列代替组合
从 itertools 导入排列 count = Counter(permutations(n,2))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。