首页 > 解决方案 > 如何比较一个类的实例

问题描述

使用 pygame,我试图用 2 个 for 循环来比较一个类的每个实例,但不是它本身。我只是不清楚如何排除一审。帮助会很好

编辑:它们存储在列表中

标签: python-3.x

解决方案


您可以使用该enumerate函数,以便对于每个实例,您都可以在列表中获得它的索引。然后,对于您的第二个循环,您避免使用该索引。

enumerate是一个内置函数,它接受一个可迭代对象并在 for 循环中为您提供一个运行计数器。

所以,

for k, word in enumerate(['alfa','bravo','charlie']):
    print(k, word)

生产

0 alfa
1 bravo
2 charlie
for k, x in enumerate(list_of_instances):
    for y in (_ for j,_ in enumerate(list_of_instances) if j != k):
        do_a_thing()

编辑:

您也可以对内循环使用切片。IE,

for y in list_of_instances[:k]:
    do_a_thing()
for y in list_of_instances[k:]:
    do_a_thing()

推荐阅读