p=[(0, 2), (2, 6), (6, 7), (7, 3), (3, 7), (7, 6), (6, 4), (4, 5), (5, 4), (4, 1), (1, 4), (4, 6), (6, 2)]
我需要帮助编写一个python代码,介绍如何只返回一次出现的值然后突破循环? 例如,这里
我们返回list= 0,2,6,7,3
。但是在列表p中,因为(3,7)
之前已经存在
作为(7,3)
,我们打破了循环。
答案 0 :(得分:1)
''' 如果您所需的输出是列表[0,2,6,7,3],则可以使用以下方法:'''
p = [(0, 2), (2, 6), (6, 7), (7, 3), (3, 7), (7, 6), (6, 4), (4, 5), (5, 4),
(4, 1), (1, 4), (4, 6), (6, 2)]
out_data = []
for i in p:
if i[0] not in out_data:
out_data.append(i[0])
else:
break
print(out_data)
答案 1 :(得分:0)
如果您的所需输出是列表[0, 2, 6, 7, 3]
,那么您可以使用以下方法:
p = [(0, 2), (2, 6), (6, 7), (7, 3), (3, 7), (7, 6), (6, 4), (4, 5), (5, 4), (4, 1), (1, 4), (4, 6), (6, 2)]
present = {}
output = []
for x in p:
output.append(x[0])
if frozenset(x) in present:
break
else:
present[frozenset(x)] = 0
print output
这使用Python的frozenset
作为字典键来确定您的数字对是否已经被看到,并且突破循环。
它将显示以下内容:
[0, 2, 6, 7, 3]