len
Функция вернет только длину списка. Его просто число, поэтому вы не можете его перебирать с помощью цикла for
.
Возможно, вы хотите использовать функцию xrange
, наряду с len(x)
for i in xrange(len(x)):
Мы используем xrange
функции здесь, потому что range
функции создает весь список в памяти перед итерацией. Например,
print range(10)
даст вам недавно построенный список с элементами от 0 до 9. Подумайте о переборе очень большой список. Допустим, что размер списка 10000000. Это действительно пустая трата памяти для генерации чисел от 0 до 10000000, просто ради итерации, правильно? Вот почему мы используем xrange
.
Возвращает итерируемый объект, который дает одно число за раз, итерации. Его очень эффективная память, так как нам не нужно создавать весь список.
Предложение: Если нет необходимости изменять исходный список, вы можете создать новый список и вернуть его.
раз четкости (my_list, my_num = 10): возвращение [current_num + my_num для current_num в my_list]
л = [1,2,3,4,5] л = раз (л) print l
Он будет иметь такой же эффект на данные, как и первый. Но мы используем понимание списка для создания нового списка и назначаем его переменной l
. Итак, теперь l
указывает на только что созданный список вместо старого.
* для я в Len (х) * => * для я в диапазоне (LEN (х)) * – MarshalSHI
Вы забываете читать как 'for' работает в Python. –