gpt4 book ai didi

python - 如何使用 python 查找对?

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:19 25 4
gpt4 key购买 nike

假设我有这种格式的数据(假设制表符分隔)

1   10,11,15
2 12
3 12,11
4 10,11

如何遍历列表并计算第二列中最受欢迎的对象对?假设第二列可以有无限数量的项目。

理想的输出会返回类似的东西

pairs count
10,11 (2)
10,15 (1)
11,15 (1)
11,12 (1)

最佳答案

这些都假设您可以将您的输入放入列表列表中:

如果您使用的是 Python 2.7,请尝试将 Counteritertools 结合使用:

>>> from collections import Counter
>>> from itertools import combinations
>>> l = [[10, 11, 15], [12], [12, 11], [10, 11]]
>>> c = Counter(x for sub in l for x in combinations(sub, 2))
>>> for k, v in c.iteritems():
... print k, v
...
(10, 15) 1
(11, 15) 1
(10, 11) 2
(12, 11) 1

如果您使用的是 Python < 2.6,则可以将 defaultdictitertools 结合使用(我敢肯定其中一位专家会提供更简洁的解决方案) .

In [1]: from collections import defaultdict

In [2]: from itertools import combinations

In [3]: l = [[10, 11, 15], [12], [12, 11], [10, 11]]

In [4]: counts = defaultdict(int)

In [5]: for x in l:
...: for item in combinations(x, 2):
...: counts[item] += 1
...:
...:

In [6]: for k, v in counts.iteritems():
...: print k, v
...:
...:
(10, 15) 1
(11, 15) 1
(10, 11) 2
(12, 11) 1

关于python - 如何使用 python 查找对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com