Если у меня есть список и вы хотите усечь его, чтобы его было не более 100 предметов, как мне это сделать?Как урезать список?
ответ
Чтобы изменить список на месте (а не сделать более короткую копию списка), используйте:
del l[100:]
+1 Полностью забыл, что 'del' работает с ломтиками. – delnan
Нарезка с помощью [: 100], как правило, является лучшим решением, поскольку она имеет постоянную производительность, но del [100:] становится медленнее для большего списка. – kefeizhou
kefeizhou: Это может зависеть от того, что вы на самом деле хотите. Если вам действительно не нужны записи за пределами первых 100, вы должны их удалить.Говорить, что это вообще лучшая идея, чтобы держать их лживыми, потому что это занимает меньше времени, чем удаление их, кажется странным аргументом для меня. –
Вы можете использовать список нарезку:
a = a[0:100]
И если вы абсолютно настаиваете на освобождении неиспользованного остатка: del a [100:] – Confusion
@Confusion: остаток получает сбор мусора автоматически, если 'a' была единственной ссылкой на список. –
Вы можете сделать что-то вроде:
truncated = list[:100]
items[:100]
другого упоминалось дает вам новый список, который содержит первые 100 наименований items
. Если вы хотите изменить список на месте, либо используйте использовать items[:] = items[:100]
(назначение ломтика), либо while len(items) > 100: items.pop()
del items[100:]
как предложено Ned Batchelder.
Вы можете использовать нарезку, если вы не возражаете, просто создавая новую копию списка который содержит только те элементы, которые вы хотите ... однако это оставляет исходный список немодифицированным.
>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> b = a[0:5]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b
[0, 1, 2, 3, 4]
Если вы действительно хотите, чтобы укоротить первоначальный список, просто удалить элементы, которые вы не хотите, используя нарезку с дель
>>> del a[5:]
>>> a
[0, 1, 2, 3, 4]
Правильный ответ, конечно:
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = x[:5]
>>> x
[0, 1, 2, 3, 4]
Но, что важно, если вы заинтересованы в значениях выше 100 и хотите потянуть их по одному по какой-либо причине, вы также можете использовать POP()
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x.pop()
9
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8]
Вы можете даже указать, какой элемент вытаскивать:
>>> x= range(10,20)
>>> x
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> x.pop(3)
13
>>> x.pop()
19
>>> x
[10, 11, 12, 14, 15, 16, 17, 18]
>>> x.pop(-1)
18
[10, 11, 12, 14, 15, 16, 17]
Это удаляет отдельные элементы, сокращая список, без копирования.
Таким образом, тупой и yucky ответ (но и правильный) будет означать итерацию вниз. Я буду только вниз от 12 до 8 для удобства чтения здесь:
>>> x=range(12)
>>> for i in range(len(x), 8, -1):
... y = x.pop()
... print "popping x: ", y, ", x=", x
...
popping x: 11 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
popping x: 10 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
popping x: 9 , x= [0, 1, 2, 3, 4, 5, 6, 7, 8]
popping x: 8 , x= [0, 1, 2, 3, 4, 5, 6, 7]
Конечно, это не является оптимальным, но я столкнулся с ситуацией, когда я нуждался в этом, так что я думал, что я разделю его здесь (Я усекаю список, когда вижу первое значение не-Нет).
- 1. Как урезать этот результат?
- 2. Как урезать значения CGFloat?
- 3. Как урезать десятичные числа?
- 4. Как урезать дату в PostgreSQL?
- 5. Как урезать пробел объекта JSON
- 6. Как урезать Linq на SQL?
- 7. Как урезать sValue в jqgrid
- 8. Как урезать британские почтовые индексы
- 9. Как урезать значение строки результата?
- 10. Как урезать время на java.sql.Date?
- 11. Как урезать вывод команды UNIX?
- 12. Как отрезать/урезать это значение?
- 13. Как урезать значение в php?
- 14. . Как урезать DataGridTextColumn LongText с "..."
- 15. Как урезать дату в .net?
- 16. Как урезать маржу в imagemagick?
- 17. Effiecient способ урезать массив
- 18. Как урезать UIImagePickerController как показано на рисунке
- 19. Как урезать текущее имя файла из URL?
- 20. Как урезать HmacSHA256 до 128 бит?
- 21. Как урезать длинные ссылки с CSS3?
- 22. Как урезать линию между двумя точками?
- 23. JPA - Как урезать таблицы между модульными тестами
- 24. Как урезать и разбить строку Url
- 25. Как урезать метку времени до минут?
- 26. Yahoo Pipes - Как урезать последние 5 символов
- 27. Как урезать пробелы между заголовками столбцов?
- 28. Как урезать пространство между буквами с PHP?
- 29. Как урезать поле статусной линии Vim справа?
- 30. Как урезать дату в секундах в Oracle
Что вы попробовали? – SilentGhost
Возможный дубликат http://stackoverflow.com/questions/1534939/how-to-trim-a-list-in-python –