首先在python列表中出现一个数字

时间:2015-04-09 17:15:46

标签: python

我是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 

2 个答案:

答案 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