Подтвердить что ты не робот

Создание для цикла list.length

Сейчас я читаю о циклах, и мне любопытно, можно ли сделать цикл for в Python, как в Java

можно даже сделать что-то вроде

for (int i = 1; i < list.length; i++)

и можете ли вы сделать еще один цикл внутри цикла for? спасибо

4b9b3361

Ответ 1

В Python вы можете выполнять итерацию по самому list:

for item in my_list:
   #do something with item

или использовать индексы, которые вы можете использовать xrange():

for i in xrange(1,len(my_list)):    #as indexes start at zero so you 
                                    #may have to use xrange(len(my_list))
    #do something here my_list[i]

Существует еще одна встроенная функция enumerate(), которая возвращает как элемент, так и индекс:

for index,item in enumerate(my_list):
    # do something here

примеры:

In [117]: my_lis=list('foobar')

In [118]: my_lis
Out[118]: ['f', 'o', 'o', 'b', 'a', 'r']

In [119]: for item in my_lis:
    print item
   .....:     
f
o
o
b
a
r

In [120]: for i in xrange(len(my_lis)):
    print my_lis[i]
   .....:     
f
o
o
b
a
r

In [122]: for index,item in enumerate(my_lis):
    print index,'-->',item
   .....:     
0 --> f
1 --> o
2 --> o
3 --> b
4 --> a
5 --> r

Ответ 2

Да, вы можете range [docs]:

for i in range(1, len(l)):
    # i is an integer, you can access the list element with l[i]

но если вы все равно получаете доступ к элементам списка, более естественно их перебирать напрямую:

for element in l:
   # element refers to the element in the list, i.e. it is the same as l[i]

Если вы хотите пропустить первый элемент, вы можете нарезать список [tutorial]:

for element in l[1:]:
    # ...

можете ли вы сделать еще один цикл внутри цикла for

Конечно, вы можете.

Ответ 3

Ответ зависит от того, для чего вам нужен цикл.

конечно, вы можете иметь петлю, похожую на Java:

for i in xrange(len(my_list)):

но я никогда не использовал такие циклы,

потому что обычно вы хотите итерации

for obj in my_list

а также вам нужен индекс

for index, obj in enumerate(my_list)

или вы хотите создать другую коллекцию из списка

map(some_func, my_list)

[somefunc[x] for x in my_list]

также имеется модуль itertools, который охватывает большинство случаев, связанных с итерацией

также обратите внимание на встроенные функции, такие как any, max, min, all, enumerate

Я бы сказал - не пытайтесь писать Java-подобный код в python. Всегда есть питонический способ сделать это.

Ответ 4

Здесь вы можете узнать о петлях Python: http://en.wikibooks.org/wiki/Python_Programming/Loops

Вы должны знать, что Python не имеет {и} для начала и конца цикла, вместо этого он зависит от символов вкладок, которые вы вводите в первой строке, я имею в виду отступы строки.

Итак, вы можете сделать цикл внутри цикла с двойной вкладкой (отступ)

Пример двойного цикла выглядит так:

onetoten = range(1,11)
tentotwenty = range(10,21)
for count in onetoten:
    for count2 in tentotwenty
        print(count2)

Ответ 5

Я бы попытался найти решение google и строку Python для инструкции, это так просто. Ссылка в начале говорит все. (Отличный форум, на самом деле, но его использование кажется иногда похожим на использование Microsoft понимания всех преимуществ своих продуктов GUI: окна внутри, идиоты снаружи.)