Следующий код:
c=0 while c < len(demolist):
print demolist[,c,]=,demolist[c]
c=c+1
Создает этот вывод:
demolist[ 0 ]= life
demolist[ 1 ]= 42
demolist[ 2 ]= the universe
demolist[ 3 ]= 6
demolist[ 4 ]= and
demolist[ 5 ]= 7
demolist[ 6 ]= everything
Что происходит с demolist[',c,']
, который печатается в цикле while? Почему это дает число в скобках, тогда как класть demolist[c]
там просто печатает именно это?
Оператор print получает четыре аргумента (разделенные запятыми):
demolist[ # string
c # integer
]= # string
demolist[c] # result of list access
Более четкий способ написать эту строку:
print 'demolist[ {0} ]= {1}'.format(c, demolist[c])
Посмотрите, как он работает в режиме онлайн: ideone
Примечание. Вы также можете рассмотреть возможность использования enumerate
здесь вместо цикла while.
for n, elem in enumerate(demolist):
print 'demolist[ {0} ]= {1}'.format(n, elem)
Посмотрите, как он работает в режиме онлайн: ideone
print demolist[,c,]=,demolist[c]
печатает строку "demolist["
, значение c
, строка "]="
и значение demolist[c]
, разделенные пробелами.
c
- целое число. demolist[c]
возвращает значение из индекса c
из списка, demolist
.
print demolist[,c,]=
печатает серию объектов с неявным преобразованием в строку (поэтому вам не нужно явно преобразовывать c (целое число) в строку).
Лучшим способом написания этого кода является
for idx, item in enumerate(demolist):
print 'demolist[%d] = %s' % (idx, item)