Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перебрать элементы последовательности, не создавая копию 
V
    Опции темы
srd
Дата 16.5.2007, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 7
Всего: 49



Например, есть список и нужно в цикле перебрать все его элементы, начиная с третьего.
Так:
Код

for i in sq[3:]:

не подходит, потому что список sq может быть очень большим и создавать его копию без первых трёх элементов накладно.


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
pythonwin
Дата 16.5.2007, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Код

l1=l[:3]+[x*2 for i, x in enumerate(l) if i>2]

или
Код

>>> for i, x in enumerate(l):
    if i>2:
        l[i]=x*2


PM WWW GTalk Jabber   Вверх
V_I
Дата 16.5.2007, 09:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



srd
можно и так:
Код

for i in xrange(len(sq)):
  if i < 2:
    continue

PM MAIL   Вверх
srd
Дата 16.5.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 7
Всего: 49



Спасибо, идея понятна.

З.Ы.
О существовании функции enumerate ранее не подозревал ;)


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
silently_fox
Дата 18.5.2007, 21:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.9.2006

Репутация: 1
Всего: 1



самое очевидное:
Код

for i in xrange(2,len(sq)):
    pass

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.