Python 3.x 计算Python列表中有多少对数字

Python 3.x 计算Python列表中有多少对数字,python-3.x,Python 3.x,我四处搜索,找到了如何返回列表中有多少对相同的值。例如: x=[10,10,20,30,20]=>它应该返回2,因为我们有两对值都相同:(10,10)和(20,20)。 是什么让我困惑和不理解,为什么下面的函数返回结果+1?这会导致错误的输出。 输出应该是2,但我有3!!多谢各位 x = [20, 30, 20, 30, 20, 40, 30] freq = {} count = 0 for item in x: if (item in freq): freq[item]

我四处搜索,找到了如何返回列表中有多少对相同的值。例如: x=[10,10,20,30,20]=>它应该返回2,因为我们有两对值都相同:(10,10)和(20,20)。 是什么让我困惑和不理解,为什么下面的函数返回结果+1?这会导致错误的输出。 输出应该是2,但我有3!!多谢各位

x = [20, 30, 20, 30, 20, 40, 30]
freq = {} 
count = 0 
for item in x: 
  if (item in freq): 
     freq[item] += 1
  else:
    freq[item] = 1
for key, value in freq.items(): 
    count+=value/2 
print("Pairs : ",int(count))

以下代码行不是您要查找的代码:

set(ar).intersection(mylist)
它只是打印出列表中唯一元素的数量

你可以这样做:

freq = {}
count = 0 
for item in x: 
    if (item in freq): 
        freq[item] += 1
    else: 
        freq[item] = 1

for key, value in freq.items(): 
    count+=value/2
print("Pairs : ",count)

与我们正在学习的相比,它们为我们提供了许多高级功能来解决。这就是我到目前为止所做的。你有什么建议吗。非常感谢。非常感谢你的支持,但它给了我一个3.5的结果,而它应该是3。我必须删除浮动吗?对不起打扰你了,我知道了,兄弟,用
value//2
。这会进行楼层分割,而不是创建一个浮点值,之后需要进行转换。如何计算重叠对。
[1,1,1]
包含一对还是三对?