2013-09-08 2 views
0

такта у меня есть этот код:Доступ в индексе для

for i in words: 
    print i 

пославших «привет» слово в 3 раза. Почему если:

for i in words: 
    print i[0] 

доклад является «з» слово в 3 раза, а не «привет» слово за 1 раз? Я должен сообщить «привет» на один раз.

ответ

0

Вы ищете words[0] вместо:

print words[0] 

Индексирование строк Python дает отдельные символы:

>>> 'hello'[0] 
'h' 

, но вы, кажется, искать индексировать words список вместо:

>>> ['hello', 'hello', 'hello'][0] 
'hello' 

for делает последний, привязывая каждый элемент в words к i, в свою очередь, позволяя вашему контуру печатать его. Если вам нужно только напечатать один элемент, просто используйте print непосредственно вместо использования цикла.

2

Вот объяснение того, что делает ваш код:

for i in words: 
    print i 

1. Возьмите каждый элемент списка words в i
2. Распечатать этот элемент

for i in words: 
    print i[0] 

1. Возьмите каждый элемент списка words как i
2. Распечатайте первый элемент i (что происходит с быть строкой, поэтому первая буква печатается)

Чтобы сделать код печати hello только один раз, вы должны сделать что-то вроде print words[0], которое выведет первый элемент из списка words