我有一个元组列表:a = [(1,2),(1,4),(1,2),(6,7),(2,9)]
我想检查每个元组的单个元素是否与另一个元组中的同一位置/元素匹配,以及这种情况发生的次数。
例如:如果某些元组中只有第一个元素有重复项,则返回元组及其重复次数。 我可以用下面的代码来实现:
a = [(1,2), (1,4), (1,2), (6,7), (2,9)]
coll_list = []
for t in a:
coll_cnt = 0
for b in a:
if b[0] == t[0]:
coll_cnt = coll_cnt + 1
print "%s,%d" %(t,coll_cnt)
coll_list.append((t,coll_cnt))
print coll_list
我想知道有没有更有效的方法?
你可以使用^{}
这将输出:
它是一个类似字典的对象,项(本例中是元组)作为键,值包含看到该键的次数。您的
(1,2)
元组出现两次,而所有其他元组只出现一次。如果您对元组的每个单独部分感兴趣,则可以对元组中的每个元素使用相同的逻辑。
first_element
和second_element
现在包含一个Counter
值在元组中每个元素中出现的次数同样,这些对象类似于字典,因此您可以检查特定值直接出现的频率:
在元组列表的第一个元素中,值
2
出现了1次。使用集合库。在下面的代码val 1中,val 2分别为元组的每个第一元素和第二元素提供了副本。
这是每个元组的第一个元素出现的次数
这是每个元组的第二个元素出现的次数
您可以制作count_映射,并将每个元组的计数存储为值。
相关问题 更多 >
编程相关推荐