Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 7, 2014 22:54:00

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Вырезать элементы из списка.

Мне необходимо вытащить из списка несколько первых элементов.

Можно просто пользоваться таким кодом:

 elems = someList[0:index] 
Но мне необходимо чтобы эти элементы из списка тут же удалялись. Есть ли какой-то метод для этого, типа splice или необходимо вырезать отдельно теперь?

Вот это вроде бы работает, это нормальный код?

 l = somelist[0, index]
 somelist[0, index] = []
 return l


Отредактировано in (Ноя. 7, 2014 23:06:07)

Офлайн

#2 Ноя. 7, 2014 23:38:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Вырезать элементы из списка.

>>> lst = [1, 2, 3, 4]
>>> lst[:2] = ()
>>> lst
[3, 4]
>>>



Офлайн

#3 Ноя. 7, 2014 23:55:29

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Вырезать элементы из списка.

Спасибо, мне нужно одновременно и вернуть вырезанные элементы и модифицировать список, я думал может есть нативный метод какой-нибудь

Офлайн

#4 Ноя. 8, 2014 00:12:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Вырезать элементы из списка.

in
мне нужно одновременно и вернуть вырезанные элементы и модифицировать список
>>> lst = [1, 2, 3, 4]
>>> x = lst[:2]
>>> lst = lst[2:]
>>> x
[1, 2]
>>> lst
[3, 4]
>>>

Это можно и в одну строку записать, но оно там может глючить, если срезы пересекаются. Так что лучше на отдельных.



Отредактировано py.user.next (Ноя. 8, 2014 00:15:03)

Офлайн

#5 Ноя. 8, 2014 14:59:35

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Вырезать элементы из списка.

Для удаления есть оператор del:

del someList[3:8] # удаляем из списка 5 элементов, начиная с 3го
А до этого можем их скопировать во вновь созданный список:
new_sublist = someList[3:8]



Отредактировано Isem (Ноя. 8, 2014 15:07:57)

Офлайн

#6 Ноя. 8, 2014 16:44:45

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Вырезать элементы из списка.

in
Мне необходимо вытащить из списка несколько первых элементов.
in
Но мне необходимо чтобы эти элементы из списка тут же удалялись.
Почитайте про list.pop. Если элементы расположены последовательно, то, как указали выше, сработает
>>> lst=[1,2,3,4,5,6,7]
>>> lst[:3]
[1, 2, 3]
>>> lst[3:]
[4, 5, 6, 7]

Отредактировано vanvanov (Ноя. 8, 2014 16:53:30)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version