Перечислить преобразование объектов в integer
У меня есть список:
nums=[[19],[5],[23],[6],[10]].
Есть ли способ конвертировать объект списка в «простой» объект?
Итак, [19]
станет фактическим целым числом 19
? Может быть, какой-то тип кастинга?
- Как получить мою переменную из этого цикла? – Блендер
- Инициализация Python через атрибуты объекта
- Проверьте, отображается ли имя атрибута объекта в строке python
- Создать объект из нескольких списков
- Возможно ли динамически генерировать атрибут в объекте python?
Это, пожалуй, самый ясный подход:
nums = [[19],[5],[23],[6],[10]] ints = [i[0] for i in nums]
Есть и другие поучительные способы сделать это.
Распаковка с элемента работает (что ясно показывает, что в каждом элементе есть только один элемент, и будет выдача ошибки при распаковке, если их больше одного):
unpacked_ints = [i for i, in nums]
Или может появляться из каждого подсписок (последний элемент, который удаляет его из подсписчика, он больше не будет, если вы держите ссылку на подсписки):
popped_ints = [i.pop() for i in nums]
или functionally ( operator.itemgetter
возвращает частичную функцию, такую как lambda x: x[0]
):
import operator ints2 = list(map(operator.itemgetter(0), nums))
в Python2 нет необходимости перечислить список:
import operator ints3 = map(operator.itemgetter(0), nums)
EDIT в ответ на комментарий:
Теперь ваш комментарий состоит в том, что вы имеете дело с большим итерабельным, возможно, не хотите материализовать все это в памяти. Это все еще не меняет того, как я рекомендую вам с этим справиться. Я понимаю, что вы хотели бы это сделать:
for i in nums: my_process(i)
Поэтому я бы порекомендовал вам сделать это:
for i in nums: my_process(i[0])
Другой вариант – сгладить список.
nums = [[19],[5],[23],[6],[10]] nums = [num for numlist in nums for num in numlist]
Или, но только если вы хотите раздражать любого, кто читает ваш код:
n = [[19],[5],[23],[6],[10]] n = [n for n in n for n in n]
😉
Самое простое решение – в stdlib: https://docs.python.org/2/library/itertools.html#itertools.chain.from_iterable
import itertools nums=[[19],[5],[23],[6],[10]] print list(itertools.chain.from_iterable(nums)) # [19, 5, 23, 6, 10]
- python – Когда WebSocketHandler и TornadoWebSocketClient полностью удалены?
- представлять файл как объект с python
- Как создать «локальный объект» в Python?
- В какой структуре находится объект Python, хранящийся в памяти?
- Почему параметр cmp удален из sort / sorted в Python3.0?
- Класс экземпляров сохраняет ссылки
- Использование объектов Python в C ++
- Какие объекты гарантированно имеют различную идентичность?
- Объект 'int' не является итерируемым сценарием GIS