2015-04-09 2 views
-2

Я новичок в python, поэтому, пожалуйста, извините, если это действительно очень глупый вопрос.Первое заполнение числа в списке python

У меня длинный список, состоящий из двух фиксированных возможных чисел (0 и 1).

e.g: 
list = [0,0,0,0,0,1,1,1,1,1,1,1] 

Я не знаю, какой номер происходит первый в списке, но я уверен, что если 0 является встречающимся первым в списке, чем он будет последовательное вхождение follwing на 1, тот же случай для 1.

Я выполняю какое-то действие на основе этих условий числа (0,1), но также мне нужно показать сообщение перед первым возникновением 0 и 1.

Первое заполнение первого номера (в данном случае 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 
+1

Держите флаг переменной ('one_seen') равным' False', пока вы не увидите первый 1, установите его в значение 'True', как только увидите 1. –

+0

' list.index' может помочь вам найдите первое вхождение элемента. Но если вы печатаете элементы в цикле, я бы использовал предложение Ашвини. – Shashank

+0

Непонятно, в чем ваш вопрос. Вы хотите обнаружить первые «0» и первые «1» в списке, или это что-то еще? – mins

ответ

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 
+0

Бах, я случайно попал в enter и сохранил его до того, как я может написать сообщение редактирования. Я думал, что твоя оригинальная формулировка сбивает с толку негатив, так как это звучит так, как будто 0 и 1 был единственным случаем, когда это не сработало. Ознакомили его с позитивным. :) –

+0

Нет проблем. Мне это нравится, и я не носитель языка – JuniorCompressor

1

Использование index найти первое вхождение элемента в list

>>> l = [0,0,0,0,0,1,1,1,1,1,1,1] 
>>> l.index(0) 
0 
>>> l.index(1) 
5 
+1

И вы можете использовать 'l.index (1 - l [0])', чтобы найти самый ранний элемент, отличающийся от первого, считая, что элементы действительно все 0 или 1. –

Смежные вопросы