Если поисковая фраза «Диапазон списка Python Join» Привел вас сюда, вы, скорее всего, одна из следующих проблем:
- Вы не знаете, как ConcateNate Два
Диапазон ()
ИТЕРАЛЫ ИЛИ. - Вы хотите использовать
.join ()
создать строку изДиапазон ()
Это не работает.
В любом случае, прочитав эту статью, я надеюсь, что вы не только ответите на ваш вопрос, вы также становитесь немного лучше (Python) кодером, понимая важные нюансы в языке программирования Python.
Но давайте сначала поиграем с некоторым кодом и получите обзор двух решений, пожалуйста, мы?
Упражнение : Можете ли вы достичь обеих целей в одной строке кода Python?
ConcateNate два диапазона () имитал
Проблема Как создать новый список путем объединения двух Диапазон ()
Поttileables?
Пример : Вы хотите объединить следующие два Диапазон ()
показывать
range(1,5) + range(5,10)
Ваш ожидаемый результат:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Разработка решения : Результат Диапазон (запуск, остановка, шаг)
Функция – это объект «диапазона»:
>>> range(10) range(0, 10) >>> type(range(10))
К сожалению, вы не можете просто объединить два объекта диапазона, потому что это вызвало бы Типеррор
– оператор + не определен на двух объектах диапазона:
>>> range(1, 5) + range(5, 10) Traceback (most recent call last): File "", line 1, in range(1, 5) + range(5, 10) TypeError: unsupported operand type(s) for +: 'range' and 'range'
Таким образом, самый простой способ объединить два объекта диапазона состоит в том, чтобы сделать следующее.
- Конвертировать оба объекта диапазона в списки, используя
Список (диапазон (...))
Функция звонков. - Используйте Список конкатенации Оператор
+
на полученные объекты.
l = list(range(1, 5)) + list(range(5, 10)) print(l) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
Есть и другие способы Списки ConsateNate – И более эффективный – использовать Itertools.Chain () функция.
from itertools import chain l = chain(range(1, 5), range(5, 10)) print(list(l)) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
Это имеет преимущество, которое вы работаете исключительно на вершинах, а не списки. Нет необходимости тратить вычислительные циклы для создания объекта списка, если вам нужно только для того, чтобы объединить его в другой объект списка. Избегая лишнего создания списка вы выигрываете в производительности (за расходы на добавление другой библиотеки в ваш код).
Вы можете увидеть, как первая версия создает несколько объектов списка в памяти в интерактивном визуализации памяти:
Упражнение : Сколько объектов списка в памяти после окончания кода?
Использовать .join (), чтобы создать строку из диапазона ()
Проблема : Учитывая объект диапазона, который является намерением для целых чисел – как присоединиться к всем целым числам в новую строковую переменную?
Пример : У вас есть следующий объект диапазона:
range(10)
Вы хотите следующую строку:
'0123456789'
Решение : Чтобы преобразовать объект диапазона в строку, используйте String.join () метод и пройти выражение генератора str (x) для x в диапазоне (...)
Чтобы сначала преобразовать каждое целое число в строковое значение. Это необходимо, поскольку функция объединения ожидает, что у нее выясняется, а не целые числа. Если вы пропустите этот второй шаг, Python бросит Типеррор
:
print(''.join(range(10))) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\code.py", line 2, inprint(''.join(range(10))) TypeError: sequence item 0: expected str instance, int found '''
Итак, правильный путь – это преобразовать каждый элемент в строку с помощью выражение генератора str (x) для x в диапазоне (...)
внутри Присоединяйтесь к (...)
Список аргументов. Вот правильный код, который объединяет все целыми числами в объекте диапазона в самом пиптоном пути:
print(''.join(str(x) for x in range(10))) '0123456789'
Вы можете использовать разные строки разделителя, если вам нужно:
print('-'.join(str(x) for x in range(10))) '0-1-2-3-4-5-6-7-8-9'
Статьи по Теме:
- Списки Python [Ultimate Guide]
- Python Присоединяйтесь к [Ultimate Guide]
- Выражения генератора Python и понимание списка
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.