我是python的新手所以请对不起,如果这是一个非常愚蠢的问题。
我有一个长列表,其中包含两个固定的可能数字(0和1)。
e.g:
list = [0,0,0,0,0,1,1,1,1,1,1,1]
我不知道列表中首先出现的是哪个号码,但我确定如果为0 首先出现在列表中,而不是连续出现1,相同的情况为1。
我正在根据这些数字条件(0,1)执行某种动作,但我也需要 在第一次出现0和1之前显示一个msg。
第一次出现第一个号码(在这种情况下为0),我已经这样管理了。
if list[0] == 0:
print ('first occurance of 0')
elif list[0] == 1:
print ('first occurance of 1')
我不确定如何在执行此列表时指出第一次出现1。
对于这个示例列表,我需要这样的结果。
msg before first occurance of 0
0
0
0
0
0
msg before first occurance of 1
1
1
1
1
1
1
1
答案 0 :(得分:2)
适用于超过0和1的解决方案可以基于包含我们目前遇到的元素的set
:
l = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]
s = set()
for x in l:
if x not in s:
print("first occurrence of %s" % x)
s.add(x)
print(x)
结果:
first occurrence of 0
0
0
0
0
0
first occurrence of 1
1
1
1
1
1
1
1
答案 1 :(得分:1)
使用index
查找list
>>> l = [0,0,0,0,0,1,1,1,1,1,1,1]
>>> l.index(0)
0
>>> l.index(1)
5