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