2015-12-23 2 views
1

Я следую за книгой, и я столкнулся с этой программой. Я не уверен, как работает numbers[position] в строке 5? Какова связь между position и numbers в этом присвоении переменных?Confused о присвоении переменной списка

numbers = [1, 3, 5] 
position = 0 

while position < len(numbers): 
    number = numbers[position] 
    if number % 2 == 0: 
     print "Found even number", number 
     break 
    position = position + 1 

else: 
    print "No even number found" 
+0

Вы имеете в виду эту строку: 'number = numbers [position]'? –

+7

Если эта книга использует синтаксис индексации списков, прежде чем объяснять, что такое синтаксис индексации списка, и вручную увеличивает число от 0 до len (числа) в цикле while вместо того, чтобы делать 'для позиции в диапазоне (len (numbers)):' или просто 'для числа в числах:', то я думаю, вы должны найти лучшую книгу. – Kevin

+0

Добавьте некоторые заявления о печати и посмотрите, как они меняются. – tdelaney

ответ

1

Это число в квадратных скобках индекс списка,

как так

lst = ["b", "c", 3] # Take care not to use "list" as a variable name by the way. 
print lst[0]  # I used lst in my example 

дает:

"b" 

Первый элемент списка.

Однако я не мог пройти, не сказав, что для цикла это гораздо лучший способ сделать это. Вместо того, чтобы увеличивать положение по одному и указывать, когда цикл останавливается, когда он достигает длины списка, это просто полезно для понимания понятий. Я уверен, что ваш учебник расскажет об этом дальше.

+0

Обратите внимание, что в Python (и нескольких других языках) списки/массивы индексируются начиная с 0, а не начиная с 1. –

+0

Да, попытался указать это, показывая, но я предполагаю, что это путается с комментариями. Спасибо kadrian – Rockybilly

+1

Теперь это должно быть 'print lst [0]' – kadrian

0

Это не переменное назначение, это поиск. position - это индекс; когда оно имеет значение 0, numbers[position] возвращает 1 (первый элемент в numbers), для position1 он получает 3 и т.д.

Python последовательности, такие как list индексируются 0 вверх, так что первый элемент в последовательности по индексу 0, а последний - по индексу len(seq) - 1.

0

В number = numbers[position] буквально означает, что он говорит. position - это позиция в списке. Сначала ему присваивается нуль, поэтому при выполнении numbers[position] он фактически вызывает число в списке в нулевой позиции, которое равно 1. Затем он принимает position = position + 1, который запросит у него номер в позиции 1 в списке и так далее.

0

Я не был знаком с этим типом присвоения переменной. Я видел списки, на которые ссылаются напрямую, используя номера индексов. Но после этого сообщения я пробовал следующее, и он очистил его. Большое спасибо!

list1 = ["apples", "oranges"] 
position = 1 

output1 = list1[0] 
output2 = list1[position] 

print output1 
print output2 
Смежные вопросы