python中如何统计元组中元素的个数_python-无论元素顺序如何,获取列表中的元组数...

我有一个元组列表,看起来像这样:

my_list = [(1,12),(12,1),(12,1),(20,15),(7,8),(15,20)]

无论顺序如何,我都希望对数字组合进行计数.例如,如果要简单地打印,我希望输出为:

1,12 = 3

20,15 = 2

7,8 = 1

基本上,我有一个连接列表,但方向无关紧要,因此1到12与12到1相同.

我已经为此工作了一段时间,无法提出一个干净的解决方案.我想出的一切都必须检查两个方向,但是元组的列表是随机的,因此涵盖所有可能性将是荒谬的.我可以轻松地用set或其他东西来计算唯一的元组,但是同样,我想到的“双向”计数的每个解决方案都是草率的.

我觉得这不应该很困难,但是我花了这么长时间来研究,对此我感到很头疼.任何帮助将不胜感激!

解决方法:

您可以按大小交换所有头寸,然后使用collections.counter:

from collections import Counter

l = [(1,12),(12,1),(12,1),(20,15),(7,8),(15,20)]

new_l = Counter([[(b, a), (a, b)][a < b] for a, b in l])

for a, b in new_l.items():

print('{},{}:{}'.format(*(list(a)+[b])))

输出:

15,20:2

7,8:1

1,12:3

标签:python,list,tuples,count

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值