Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较列表中的值对_Python_List - Fatal编程技术网

Python 比较列表中的值对

Python 比较列表中的值对,python,list,Python,List,我有一份清单: points = [(4, 5), (-0, 2), (4, 7), (1, -3), (3, -2), (4, 5), (3, 2), (5, 7), (-5, 7), (2, 2), (-4, 5), (0, -2), (-4, 7), (-1, 3), (-3, 2), (-4, -5), (-3, 2), (5, 7), (5, 7), (2, 2), (9, 9), (-8, -9)] equal_value

我有一份清单:

points = [(4, 5), (-0, 2), (4, 7), (1, -3), (3, -2), (4, 5),
          (3, 2), (5, 7), (-5, 7), (2, 2), (-4, 5), (0, -2),
          (-4, 7), (-1, 3), (-3, 2), (-4, -5), (-3, 2),
          (5, 7), (5, 7), (2, 2), (9, 9), (-8, -9)]

equal_values = 0
我想在此列表中计算每对值相等的次数,例如
(2,2)
。如何在if语句中定义该条件

if ??? in points:

    equal_values +=1 
你想要这个

points = [(4, 5), (-0, 2), (4, 7), (1, -3), (3, -2), (4, 5),
          (3, 2), (5, 7), (-5, 7), (2, 2), (-4, 5), (0, -2),
          (-4, 7), (-1, 3), (-3, 2), (-4, -5), (-3, 2),
          (5, 7), (5, 7), (2, 2), (9, 9), (-8, -9)]

print(points.count((2, 2)))

要计算列表中出现的
(2,2)
次数?

您可以通过以下方法快速完成:

len([i for i in points if i[0]==i[1]])
或者使用公共for循环与if语句组合,如下所示:

equal_values = 0
for i in points:
    if i[0]==i[1]:
        equal_points+=1
两种方式的输出都是3,对于给定的列表,这应该可以工作:

equal = [i for i in points if i[0] == i[1]]
然后获取计数(列表的长度):

这是怎么回事

  • 它循环遍历点中的元素并检查
    0th
    1st
    索引是否相等
  • 如果该项相等,则将其附加到列表中
  • 我们通过检查列表的长度得到相等对的计数
试试这个:

for x in points:
  m = list(iterable(x))
  if len(set(m)) == 1:
    equal_values += 1
  

你自己试过什么?请出示你的密码。虽然这可能会回答问题,但提供关于如何得出结论和你的思维过程的细节肯定会帮助提问者。看到了吧!谢谢你回答我的问题太好了!如果你的问题解决了,你能接受其中一个答案吗?干杯谢谢你的回答!实际上,我想计算第一个值=第二个值的发生次数。这发生在(2,2)上,但也发生了很多次,例如(9,9)哦,好的,所以最好的格式是
len([i为i,如果i[0]==i[1]])
非常感谢您花时间。成功了!我得到一个错误:iterable未定义。抱歉,我遗漏了一些明显的东西!
for x in points:
  m = list(iterable(x))
  if len(set(m)) == 1:
    equal_values += 1