Рубрики
Без рубрики

Список присоединения Python [Ultimate Guide]

Способ String.join (Iteable) объединяет все строковые элементы в Iterable (например, список, строка или кортеж) и возвращает результат в качестве новой строки. Строка, на которой вы называете это строку разделителя — и она отделяет отдельные элементы. Например, ‘-‘. Присоединиться ([«Hello», «World ‘]) возвращает соединенную строку« Hello-World ». >>> ‘-‘. Присоединяйтесь к («Hello», «мир») «Hello-World» … Список присоединения Python [Ultimate Guide] Подробнее »

Автор оригинала: Chris.

String.join (ИТЕРАЛ) Метод объединяет все строковые элементы в считать (например, список, строка или кортеж) и возвращает результат как новую строку. строка На котором вы называете это строку разделителя – и он отделяет отдельные элементы. Например, '-'. Присоединяйтесь («Hello ',« мир »]) Возвращает соединенную строку «Привет-мир» Отказ

>>> '-'.join(['hello', 'world'])
'hello-world'

В этом идеальном руководстве вы узнаете все, что вам нужно знать о присоединении элементов списка в Python.

Чтобы дать вам быстрый обзор, давайте посмотрим на следующую проблему.

Проблема : Учитывая Список элементов. Как присоединиться к элементам объединение Все элементы в списке?

Пример : Вы хотите Конвертировать список [«Учить», «Питон», «быстрый»] в строку «Узнать Python Fast ' Отказ

Быстрое решение : Чтобы преобразовать список строк в строку, выполните следующие действия.

  • Позвоните в '' .join (список) Метод на пустой строке '' Это склеивает все струны в Список и возвращает новую строку.
  • Строка, на которую вы вызываете метод соединения, используется в качестве разделителя между элементами списка.
  • Если вам не нужен разделитель, просто используйте пустую строку '' Отказ

Код : Давайте посмотрим на код.

lst = ['learn ', 'python ', 'fast']
print(''.join(lst))

Вывод:

learn python fast

Упражнение : Попробуйте сами в нашей интерактивной Python Shell и изменить строку разделителя!

Вы также можете использовать другую строку разделителя, например, запятую:

lst = ['learn' , 'python', 'fast']
print(','.join(lst))
# learn,python,fast

Определение: Python Список соединений с разделителем

String.join (ИТЕРАЛ) Метод присоединяется к струнным элементам в ИТЕРИТЕЛЬНО в новую строку, используя строка на котором он называется разделитель.

Вот краткий пример:

friends = ['Alice', 'Bob', 'Carl']

# Empty delimiter string ''
print(''.join(friends))
# AliceBobCarl

# Delimiter string 'xxx'
print('xxx'.join(friends))
# AlicexxxBobxxxCarl

Строковые элементы в списке друзья объединяются с помощью строки разделителя '' В первом примере и 'xxx' Во втором примере.

Статьи по Теме:

  • Список присоединения Python [Ultimate Guide]
  • Concatenation Python
  • Питон Как объединять списки
  • Окончательное руководство по спискам Python

Синтаксис

Вы можете вызвать этот метод на каждом объекте списка в Python. Вот синтаксис:

rings.join (потенциал)

считать Элементы должны быть объединены.

Python Присоединяйтесь к списку строк с запятой

Проблема : Учитывая список строк. Как преобразовать список в строку объединение Все строки в списке – используя запятую в качестве разделителя между элементами списка?

Пример : Вы хотите преобразовать список [«Учить», «Питон», «быстрый»] в строку «Учиться, Python, Fast ' Отказ

Решение : Чтобы преобразовать список строк в строку, позвоните в ','. Присоединиться (список) Способ на разделитель строки ',' Это склеивает все струны в Список и возвращает новую строку.

Код : Давайте посмотрим на код.

lst = ['learn', 'python', 'fast']
print(','.join(lst))

Вывод:

learn,python,fast

Python Присоединяйтесь к списку строк с новой строкой

Проблема : Учитывая список строк. Как преобразовать список в строку объединение Все строки в списке – используя новенький символ как разделитель между элементами списка?

Пример : Вы хотите преобразовать список [«Учить», «Питон», «быстрый»] в строку «Узнать \ NPython \ NFast ' или как многослойная строка:

'''learn
python
fast'''

Решение : Чтобы преобразовать список строк в строку, позвоните в '\ N.join (Список) Метод на новенький символ '\ N' Это склеивает все струны в Список и возвращает новую строку.

Код : Давайте посмотрим на код.

lst = ['learn', 'python', 'fast']
print('\n'.join(lst))

Вывод:

learn
python
fast

Python Присоединяйтесь к списку строк с пространством

Проблема : Учитывая список строк. Как преобразовать список в строку объединение Все строки в списке – используя пространство в качестве разделителя между элементами списка?

Пример : Вы хотите преобразовать список [«Учить», «Питон», «быстрый»] в строку «Узнать Python Fast ' Отказ (Обратите внимание на пустые пробелы между терминами.)

Решение : Чтобы преобразовать список строк в строку, позвоните в '' .join (список) Метод на строке '' (космический персонаж), который склеивает все строки в Список и возвращает новую строку.

Код : Давайте посмотрим на код.

lst = ['learn', 'python', 'fast']
print(' '.join(lst))

Вывод:

learn python fast

Python Присоединяйтесь к списку с одной и двойной цитатами

Проблема : Учитывая список строк. Как преобразовать список в строку объединение Все строки в списке – используя символ запятой, за которым следует пустое место в качестве разделителя между элементами списка? Кроме того, вы хотите обернуть каждую строку в двойных цитатах.

Пример : Вы хотите преобразовать список [«Учить», «Питон», «быстрый»] в строку «« Учить »,« Питон »,« быстро »' :

Решение : Чтобы преобразовать список строк в строку, позвоните в ', '.присоединиться («+ x +» "'' для x в lst) Способ на разделитель строки ',' Это склеивает все струны в Список и возвращает новую строку. Вы используете выражение генератора для изменения каждого элемента исходного элемента, чтобы он был заключен двойной цитатой « Chararacter.

Код : Давайте посмотрим на код.

lst = ['learn', 'python', 'fast']
print(', '.join('"' + x + '"' for x in lst))

Вывод:

"learn", "python", "fast"

Список соединений Python с подчеркиванием

String.join (ИТЕРАЛ) Метод присоединяется к струнным элементам в ИТЕРИТЕЛЬНО в новую строку, используя строка на котором он называется разделитель.

'_'. Присоединяйтесь (список) Метод на подчеркивание нить '_' Клей все строки в Список Используя строку подчеркивания в качестве разделителя – и возвращает новую строку.

Например, выражение '_'. Присоединяйтесь (['a', 'b', 'c']) Возвращает новую строку 'a_b_c' Отказ Вот еще один пример:

friends = ['Alice', 'Bob', 'Carl']
print('_'.join(friends))
# Alice_Bob_Carl

Строковые элементы в списке друзья объединяются с использованием символа подчеркивания '_' как строка разделителя.

Питон Присоединяйтесь к списку с возвратом/новой строкой

Вы хотите присоединиться к всем строковым элементам, используя возврат каретки '\ N' (Также называется новенькой персонажей) как разделитель?

Используйте новенький символ '\ N' как строковое значение, на котором вы называете '\ N.join (ИТЕРАЛ) Способ присоединиться к струнным элементам в ИТЕРИТЕЛЬНО к новой строке с элементами, разделенными на новинках.

Вот минимальный пример:

friends = ['Alice', 'Bob', 'Carl']
print('\n'.join(friends))

Вы объединяете все строковые элементы, используя символ Newline в качестве разделителя, создаваемого выходом:

Alice
Bob
Carl

Python Присоединяйтесь к списку с вкладками

Вы хотите присоединиться к всем элементам строки, используя табличный символ '\ T' как разделитель?

Используйте табличный символ '\ T' как строковое значение, на котором вы называете '\ t'.join (потенциал) Способ присоединиться к струнным элементам в ИТЕРИТЕЛЬНО к новой строке с табличными элементами.

Вот минимальный пример:

friends = ['Alice', 'Bob', 'Carl']
print('\t'.join(friends))

Вы объединяете все строковые элементы, используя символ Newline в качестве разделителя, создаваемого выходом:

Alice	Bob	Carl

Python Присоединяйтесь к списку без

Скажем, ваша цель состоит в том, чтобы объединить итеративное из строк и, возможно, Нет Элементы с сепаратором строки?

Например, вы, возможно, попробовали '-'. Присоединяйтесь ([«Алиса», «Боб», нет, нет, «Фрэнк»]) Но Питон бросает Типеррор Ожидая только строковые элементы:

>>> '-'.join(['Alice', 'Bob', None, None, 'Frank'])
Traceback (most recent call last):
  File "", line 1, in 
    '-'.join(['Alice', 'Bob', None, None, 'Frank'])
TypeError: sequence item 2: expected str instance, NoneType found

Решение простое: фильтруйте список, чтобы убедиться, что все остальные элементы являются строками. Есть много способов отфильтровать список (не стесняйтесь читать My Ultimate Guide по спискам фильтрации) – но в большинстве Pythonic является понимание списка (или выражения генератора, если вам не нужно создавать список, и, как правило, является точным образом):

>>> lst = ['Alice', 'Bob', None, None, 'Frank']
>>> '-'.join(x for x in lst if type(x) == str)
'Alice-Bob-Frank'

Выражение генератора x для x в lst если type (x) создает ущерба для элементов, которые находятся в лишенство и также имеют типовую строку. Вот как вы можете обрабатывать списки строк, которые также содержат Нет элементы.

Python Присоединяйтесь к списку целых чисел

Проблема : Вы хотите преобразовать список в строку, но список содержит целочисленные значения.

Пример : Преобразуйте список [1, 2, 3] в строку '123' Отказ

Решение : Используйте метод соединения в сочетании с выражение генератора Чтобы преобразовать список целых чисел в одно строковое значение:

lst = [1, 2, 3]
print(''.join(str(x) for x in lst))
# 123

Выражение генератора преобразует каждый элемент в списке в строку. Затем вы можете объединить строковые элементы, используя метод соединения строкового объекта.

Если вы пропустите преобразование из целых string, вы получаете следующее Типеррор :

lst = [1, 2, 3]
print(''.join(lst))

'''
Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\code.py", line 2, in 
    print(''.join(lst))
TypeError: sequence item 0: expected str instance, int found
'''

Python Присоединяйтесь к списку поплавков

Проблема : Вы хотите преобразовать список в строку, но список содержит значения float.

Пример : Преобразуйте список [1.0, 2.0, 3.0] в строку 1,0 + 2.0 + 3.0 ' Отказ

Решение : Используйте метод соединения в сочетании с выражение генератора Чтобы преобразовать список целых чисел в одно строковое значение:

lst = [1.0, 2.0, 3.0]
print('+'.join(str(x) for x in lst))
# 1.0+2.0+3.0

Выражение генератора преобразует каждый поплавок в списке в строку. Затем вы можете объединить строковые элементы, используя метод соединения строкового объекта.

Python Присоединяйтесь к списку логических

Проблема : Учитывая список булевых элементов. Какой лучший способ присоединиться к всем элементам, используя логические или или логические и операции?

Пример : Преобразуйте список [Правда, правда, ложь] Использование логической “и” операции на Правда и правда и или используя логическую «или» операцию на Правда или правда или Отказ

Решение : Используйте встроенный Python Function все () выполнять логично “и” и любой () выполнять логично “или”.

lst = [True, True, False]

# Logical "AND"
print(all(lst))
# False

# Logical "OR"
print(any(lst))
# True

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

Python Присоединяйтесь к списку кортежей

Скажем, у вас есть список кортежей, и вы хотите преобразовать его в строку ( Посмотреть эту статью для подробного руководства ). Самый простой способ достичь этого – использовать метод конвертации строки по умолчанию с str (...) .

>>> lst = [(1,1), (2,1), (4,2)]
>>> str(lst)
'[(1, 1), (2, 1), (4, 2)]'

Результатом является красиво отформатированное строковое представление вашего списка кортежей.

Однако, если вы хотите настроить строку разделителя, вы можете использовать Присоединяйтесь () Метод в сочетании с Карта () Функция :

lst = [(1,1), (2,1), (4,2)]

print('--'.join(map(str, lst)))
# (1, 1)--(2, 1)--(4, 2)

карта () Функция преобразует каждый кортеж в строковое значение и Присоединяйтесь () Метод преобразует сбор строк на одну строку, используя данный разделитель '-' Отказ Если вы забудете преобразовать каждый кортеж в строку с карта () Функция, вы получите Типеррор потому что Присоединяйтесь () Метод ожидает коллекции строк.

Если вы хотите сгладить список и интегрировать все элементы кортежей в единую большую коллекцию элементов, вы можете использовать простое заявление о понимании списка [str (x) для t в lst для x в t] Отказ

lst = [(1,1), (2,1), (4,2)]

print('\n'.join([str(x) for t in lst for x in t]))
'''
1
1
2
1
4
2
'''

Если вы хотите переопределить, как распечатать каждый корпус, например, разделяя все значения кортежей одним характером TUPLE, используйте следующий метод, основанный на комбинации Присоединяйтесь () Метод и карта () Функция с пользовательским лямбда функция lambda x: str (x [0]) + '' + STR (x [1]) Для применения к каждому элементу списка.

lst = [(1,1), (2,1), (4,2)]

print('\n'.join(map(lambda x: str(x[0]) + ' ' + str(x[1]), lst)))
'''
1 1
2 1
4 2
'''

Python Присоединяйтесь к списку наборов

Проблема : Учитывая список или набор наборов. Как присоединиться к этим комплектам, используя профсоюзную операцию?

Пример : У вас есть список наборов [{1, 2, 3}, {1, 4}, {2, 3, 5}] И вы хотите рассчитать союз {1, 2, 3, 4, 5} Отказ

Решение : Союзнуть список наборов, используйте следующую стратегию:

  • Создайте новый набор, используя Установить () конструктор.
  • Позвоните в Союз () Способ на новом заданном объекте.
  • Пройдите все наборы в качестве аргументов в Союз () Метод, распаковка списка с помощью Asterisk Operator * Список Отказ
  • Результат Союз () Метод представляет собой новый набор, содержащий все элементы, которые находятся по меньшей мере в одном из множеств.

Код : Вот Код один вкладыш что профсоюзы набор наборов.

# Create the list of sets
lst = [{1, 2, 3}, {1, 4}, {2, 3, 5}]

# One-Liner to union a list of sets
print(set().union(*lst))

Выход этого кода является объединение трех наборов {1, 2, 3} , {1, 4} , {2, 3, 5} :

{1, 2, 3, 4, 5}

Если вы Любовь Python One-Listers Проверьте мою новую книгу « Python One-Liners » (Amazon Link), которая учит вас Тщательное понимание всех одной строки кода Python.

Статьи по теме :

  • Как объединить список наборов?
  • Как пересекать список наборов?

Python Присоединяйтесь к списку байтов

Байты Python похожи, чем строки Python (по крайней мере для вас, человек, который использовал структуру данных байтов в своей программе).

Итак, присоединение к списку байтов похож на Присоединение к списку строк : Используйте метод соединения! Объект байта поставляется с методом Byte.join (потенциал) что объединяет все байтовые объекты в считать .

Имейте в виду, что объект байта представляет собой последовательность байтов само по себе (а не последовательность битов, как вы, возможно, ожидали).

Синтаксис : Byte.join (потенциал)

считать Коллекция объектов байтов.

Примеры : Давайте посмотрим кучу примеров на том, как вы можете присоединиться к Коллекция байтов объектов!

lst = [b'Python', b'is', b'beautiful']

# Example 1
print(b' '.join(lst))
b'Python is beautiful'

# Example 2
print(b'-'.join(lst))
b'Python-is-beautiful'

# Example 3
print(b'\n'.join(lst))
b'Python\nis\nbeautiful'

Вы получаете точку: вы называете Присоединяйтесь () Способ на байтовом объекте и пройти с помощью объектов байтов, которые должны быть объединены. Обратите внимание, как все вовлеченные типы данных являются объектами байтов!

Читайте больше в моей статье: Python Присоединяйтесь к списку байтов (и что такое байт Python В любом случае?)

Python Присоединяйтесь к списку словарей

Проблема : Скажи, у вас есть список словарей:

[{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}]

Обратите внимание, как первые и последние словари носят один и тот же ключ ‘a’ .

Как вы объединяете все эти словари в один словарь, чтобы получить следующую?

{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}

Обратите внимание, как Значение дубликата ключа ‘a’ Является ли значение последнего и не первого диктации в списке диктов.

Решение : Вы можете использовать понимание словаря {k: v для x в l для k, v в x.items ()} Первый итерации за все словари в списке l а затем итерации по всему (ключевым, ценным) парам в каждом словаре.

  • Создайте новый словарь, используя {...} Обозначение.
  • Перейти на все словари в списке словарей л Используя внешний цикл Для х в л Отказ
  • Перейти через все (ключ, значение) пары в текущем словаре х Используя x.items () Метод, который возвращает передачуемых пар (ключ, значение).
  • Заполните новый словарь с (ключом, значением) пар k: v Используя синтаксис понимания общего словаря {k: v для ...} Отказ
l = [{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}]

d = {k:v for x in l for k,v in x.items()}
print(d)
# {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}

Это самый питонический способ объединить несколько словарей в один, и он работает для произвольного количества словарей.

Список присоединиться к Python, кроме первых или последних Элемент

Как вы присоединяетесь к всем строкам в списке – кроме первого (или последнего) элемента?

Используйте операцию нарезки Список [1:] Чтобы получить все, кроме первого и Последний [: - 1 ] Чтобы получить все, кроме последних элементов из списка. Затем позвоните в Присоединяйтесь () Функция на полученный кусочек.

Вот код:

lst = ['Alice', 'Bob', 'Liz']

# Join except first element
joined = ' + '.join(lst[1:])
print(joined)
# Bob + Liz

# Join except last element
joined = ' + '.join(lst[:-1])
print(joined)
# Alice + Bob

Таким образом, вы можете присоединиться к всем элементам списка, кроме первых или последних элементов.

Список присоединения Python Удалить дубликаты

Проблема : Дано два Списки [1, 2, 2, 4] и [2, 5, 5, 5, 6] Отказ Как ты комбинировать Эти списки в новый список [1, 2, 2, 4, 5, 6] по Удаление дубликатов во втором списке?

Примечание : Вы хотите удалить все дубликаты во втором списке и элементы во втором списке, которые уже в первом списке.

Решение : Используйте следующие три шага, чтобы объединить два списка и удалить дубликаты во втором списке:

  • Преобразуйте первый и второй списки на набор, используя Установить (...) конструктор.
  • Используйте Установить минус Операция, чтобы получить все элементы, которые находятся во втором списке, но не в первом списке.
  • Создать новый список по объединение те элементы в первый список.

Вот код:

# Create the two lists
l1 = [1, 2, 2, 4]
l2 = [2, 5, 5, 5, 6]

# Find elements that are in second but not in first
new = set(l2) - set(l1)

# Create the new list using list concatenation
l = l1 + list(new)
print(l)
# [1, 2, 2, 4, 5, 6]

Статьи по Теме:

  • Объедините два списка Python и удалите дубликаты во втором списке
  • Удалить дубликаты из списка списков списка
  • Удалить дубликаты из списка

Python Присоединение списка обратный

Проблема : Учитывая список строк. Как присоединиться к струнам в обратном порядке?

Пример : Вы хотите присоединиться к следующему списку

l = ['n', 'o', 'h', 't', 'y', 'p']

Чтобы получить соединенную строку в обратном порядке

python

Давайте получим краткий обзор, как это сделать.

Решение : Самый питонический метод, чтобы перевернуть и присоединиться к списку строк – использовать нарезку с помощью Размер отрицательного шага Отказ

Вы можете нарезать любой список в Python, используя обозначения Список [Старт: Стоп: Шаг] Чтобы создать подсудитель, начиная с индекса Начните заканчивая прямо перед индексом Стоп и используя данный шаг Размер – который также может быть отрицательным для нарезания справа налево. Если вам нужен переподготовка к нарезке, проверьте нашу Подробное руководство в блоге Finxter или наша целенаправленная книга “Кофе-брейк Python нарезка” Отказ

Вот первый метод, чтобы изменить список строк и присоединиться к элементам вместе:

l = ['n', 'o', 'h', 't', 'y', 'p']


# Method 1
print(''.join(l[::-1]))
# python

Статьи по Теме:

  • Python Slicing [Ultimate Guide]
  • Как изменить список Python
  • Окончательное руководство по спискам Python

Диапазон списка Python 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, in 
    print(''.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 Присоединяйтесь к списку по ряду/столбцу

Проблема : Учитывая ряд списков L1 , L2 , …, ln Отказ Как объединить их в список кортежей (столбец)?

Пример : Скажем, вы хотите объединить следующие списки

l0 = [0, 'Alice', 4500.00]
l1 = [1, 'Bob', 6666.66]
l2 = [2, 'Liz', 9999.99]

в список кортежей, группируя колонны:

[(0, 1, 2), 
 ('Alice', 'Bob', 'Liz'), 
 (4500.0, 6666.66, 9999.99)]

Решение : Самый питоновый способ, которым Объединяет несколько списков в список кортежей это Zip функция. Это достигает этого в Одна линия кода То же читаемое, краткое и эффективное.

ZIP () Функция принимает один или несколько поручений и агрегирует их в одном, объединив I-Th значений каждого потенциала в кортеж. Например, Zip вместе перечислены [1, 2, 3] и [4, 5, 6] к [(1,4), (2,5), (3,6)] .

Вот решение кода:

l0 = [0, 'Alice', 4500.00]
l1 = [1, 'Bob', 6666.66]
l2 = [2, 'Liz', 9999.99]

print(list(zip(l0, l1, l2)))

Вывод является следующим списком кортежей:

[(0, 1, 2), ('Alice', 'Bob', 'Liz'), (4500.0, 6666.66, 9999.99)]

Обратите внимание, что возвращаемое значение zip () Функция – это Zip объект. Вам нужно преобразовать его в список, используя список(...) Конструктор для создания Список кортежи Отказ

Если вы сохранили входные списки в одном списке списков, следующий метод лучше всего для вас!

Вы можете использовать Звездочный оператор * lst распаковать все внутренние элементы из данного списка lst Отказ Особенно, если вы хотите объединить много разных списков, это может значительно уменьшить длину вашего кода. Вместо письма zip (lst [0], lst [1], ..., lst [n]) упростить zip (* lst) Распаковать все внутренние списки в функцию ZIP и выполнить то же самое!

lst = [[0, 'Alice', 4500.00],
       [1, 'Bob', 6666.66],
       [2, 'Liz', 9999.99]]
print(list(zip(*lst)))

Это генерирует список кортежей:

[(0, 1, 2), ('Alice', 'Bob', 'Liz'), (4500.0, 6666.66, 9999.99)]

Я бы рассмотрел, используя zip () Функция с распаковкой самого пифитонного способа объединить несколько списков в список кортежей.

Python Присоединяйтесь к списку строк Unicode

Этим утром – когда читаете сообщение WhatsApp во время моего перерыва на кофе. Я задавался вопросом: как насчет поддержки Python Unicode? Можете ли вы обработать специальные символы Unicode, такие как ⭐ и 🐍 в обычных строках? Как оказывается, вы можете! Но не со всеми инструментами (многие из них все еще наследие). Читайте дальше, чтобы узнать больше о состоянии поддержки Unicode в Python! 😉

Проблема : Учитывая Список Python строки Unicode. Как Присоединяйтесь к Все элемент списка на одну строку?

Пример : Скажем, у вас есть следующий список Python Unicode:

a = [u'⭐', u'😄', u'🐍', u'🐱‍🏍', u'🤗', u'❤']

Обратите внимание, что в Python 3+ Все строки уже UTF-8 закодирован – что означает, что они Unicode по умолчанию! Вот почему следующее заявление без 'u' Префикс делает то же самое, что и предыдущее утверждение:

a = ['⭐', '😄', '🐍', '🐱‍🏍', '🤗', '❤']

Ваша цель – присоединиться к элементам с разделитель скажи '👻' Для генерации следующего выхода:

⭐   👻   😄   👻   🐍   👻   🐱‍🏍   👻   🤗   👻   ❤

Решение : Метод теоретически просто – вы используете String.join (список) Способ присоединиться к списку строк Unicode.

a = ['⭐', '😄', '🐍', '🐱‍🏍', '🤗', '❤']
print('   👻   '.join(a))

Это генерирует выход:

⭐   👻   😄   👻   🐍   👻   🐱‍🏍   👻   🤗   👻   ❤

К сожалению, многие редакторы Python не могут справиться с ним (они все еще живут в 20 веке). Мой редактор IDLE код просто вылетает, если я пытаюсь скопировать и вставить код в него! 🤯

Редактор онлайн-кода Trinket.io жалуется (это скриншот):

Тем не менее, редактор кода REPL.IT работает! Попробуйте сами в вашем браузере:

Упражнение : Нажмите «Беги» и посмотрите выход Unicode – не так ли это красиво? Попробуйте другие символы Unicode ( ударять Символ Windows +. Чтобы открыть таблицу Emoji).

Список присоединиться к Python в парах

Проблема : Учитывая Список строк Отказ Присоединяйтесь к первому со второй строкой, второй с третью и так далее.

Пример : Давайте рассмотрим следующий минимальный пример:

['x', 'y', 'v', 'w']

Есть ли какой-нибудь простой способ соединить первое со вторым и третьим с четвертой строкой, чтобы получить следующий вывод?

['xy', 'vw']

Обратите внимание, что длина строк в списке является переменным, поэтому следующее будет совершенно приемлемым входом:

['aaaa', 'b', 'cc', 'dddd', 'eee', 'fff'] 

Вы можете играть со всеми тремя методами перед погружением в каждый из них:

Упражнение : Какой самый питонический метод?

Узнайте больше об этой теме в моем подробном руководстве в блоге!

Питонский список присоединяются как путь

Хотите присоединиться к списку строк на путь в вашей конкретной операционной системе? Вспоминая правильный разделитель пути может быть настоящей болью. К счастью, OS.Path.join () Метод приходит к спасению!

OS.Path.join () Метод принимает один или несколько аргументов по пути и возвращает конкатенацию аргументов пути с правильным сепаратором каталогов в вашей операционной системе. Если вы хотите присоединиться к списку путей, вам нужно распаковать список в списке аргументов. Например, Os.Path.join (* lst) присоединится к списку ['C:', «Ваш», каталог '] в строку пути 'C://Ваш/каталог' в среде Windows.

Синтаксис : Os.Path.join ( путь , * Пути )

Описание : Присоединяйтесь к одному или нескольким компонентам пути в дорожка а также * Пути . Компоненты ConsateNates Path с использованием строки сепаратора каталога, хранящейся в os.sep. . Если компонент является абсолютным путем, таким как «C: \ User \ Path» или буква диска, такое как ‘C:’ , все предыдущие компоненты пути выброшены, и соединение продолжается от компонента абсолютного пути. ( улучшено из документов )

Примеры : Давайте погрузиться в минимальный пример, как вы можете Присоединяйтесь к Путь, хранящийся в Список Python Отказ

import os
p = ['c:', 'user', 'path', 'file.py']
print(os.path.join(*p))

Выходный выход – это соединенный путь:

'c:user\path\file.py'

Код выполняет следующие шаги:

  • Импорт ОС модуль.
  • Создайте список компонентов PATH, хранящихся в виде строк. Строка 'C:' обозначается Письмо привода Отказ
  • Создайте строку, присоединившуюся все компоненты пути с помощью метода OS.Path.join (…). Вы распадаете все строки в списке, используя asterisk оператора. Для получения дополнительной информации о операторе Asterisk, проверьте мой подробный учебник по блогу Finxter.
  • Распечатайте результат к оболочке.

Вы можете прочитать подробную информацию о присоединении к списку строк пути в моем новом руководстве в блоге Finxter.

Python Присоединяйтесь к ломтику

Проблема : Учитывая список строк. Как присоединиться к всем строкам в данном списке ломтик и замените ломтик соединенной строкой?

Пример : Вы начинаете со следующего списка:

lst = ['i', 'l', 'o', 'v', 'e', 'u']

Вы хотите присоединиться к ломтику [«Я», «о», «V», «E»] С началом индекса 1 и завершите индекс 4 (в комплекте) и замените его в список, чтобы получить результат:

# Output: ['i', 'love', 'u']

Вы можете получить быстрый обзор всех трех методов в следующей интерактивной оболочке Python. Если вы короткие по времени-методу 1, используя назначение среза, является наиболее важном решением!

Упражнение : Измените код, так что только элементы с индексом начала 2 и конечным индексом 4 (в комплекте) заменены на соединенной строке!

Решение : Назначение среза Это немного использована, красивая функция Python, чтобы заменить кусок с другой последовательностью. Выберите ломтик, который вы хотите заменить Слева и значения, чтобы заменить его на правую сторону уравнения.

Вот как вы можете присоединиться и заменить все строки в ломтике списка (между индексами 1 и 5) в одной строке кода Python:

# Method 1: Slice Assignments
lst = ['i', 'l', 'o', 'v', 'e', 'u']
lst[1:5] = [''.join(lst[1:5])]
print(lst)
# ['i', 'love', 'u']

Одноклассник lst [1: 5] = ['' .join (lst [1: 5])]] Выполняет следующие шаги:

  • Выберите ломтик, который должен быть заменен на левой стороне уравнения с lst [1: 5] Отказ Узнайте больше о Slicing на моем руководстве в блоге Finxter.
  • Создать Список который заменяет этот кусочек на правой стороне уравнения с [...] Отказ
  • Выберите ломтик строковых элементов, чтобы быть присоединился к вместе ( 'l', 'O', 'V', 'E' ) с lst [1: 5] Отказ
  • Передайте этот ломтик в функцию объединения, чтобы создать новую строку со всеми четырьмя символами «Любовь» Отказ
  • Эта строка заменяет все четыре выбранных позиции в исходном списке.

Если вы любите силу Python One-Listers, проверьте мою новую книгу с тем же именем “Python One-listers” На Amazon (опубликовано в 2020 году с высококачественным издательским домом Nostarch San Francisco).

Узнайте больше об этой теме здесь.

Python Присоединяйтесь к конкретному списку элементы

Чтобы присоединиться к конкретному списку элементы (например, с индексами 0 , 2 и 4 ) и вернуть присоединенную строку, которая является конкатенацией всех тех, используйте выражение '' .join ([LST [I] для I в [0, 2, 4]]) Отказ Заявление о понимании списка создает список, состоящий из элементов lst [0] , lst [2] и lst [4] Отказ ''.присоединиться () Метод объединяет эти элементы с использованием пустой строки в качестве разделителя.

Проблема : Учитывая Список струн. Как присоединиться к конкретным элементам списка и вернуть объединенную строку, которая является конкретацией всех этих конкретных элементов списка?

Пример: У вас есть следующий список строк.

lst = ['hello ', 'bye', 'world', '?', '!']

Вы хотите присоединиться и объединять первый, третий и четвертый элементы списка.

'hello world!'

Вот быстрый обзор методов:

Упражнение : Согласующие элементы с индексами 1, 2 и 3 с каждым из методов!

Статьи по теме :

  • Как присоединиться к конкретным элементам в списке Python?
  • Вариант этой проблемы состоит в том, чтобы присоединиться к всему элементу нарезке и заменить кусочек соединенной строкой. Читайте об этом решении в моем блоге статьи.

Python Присоединяйтесь к списку данных данных

Чтобы присоединиться к списку данных данных, сказать DFS. , использовать Pandas.concat (DFS) Функция, которая сливает произвольное количество данных DataFrames до одного.

При просмотре Переполнение стека Я недавно наткнулся на следующую интересную проблему. Подумав о решениях этих небольших научных проблем данных, вы можете Улучшите свои навыки науки о данных Так что давайте погрузимся в описание проблемы.

Проблема : Учитывая список панд DataFrames. . Как слить их в единое датафарам?

Пример : У вас есть список Пандас Dataframes:

df1 = pd.DataFrame({'Alice' : [18, 'scientist', 24000], 'Bob' : [24, 'student', 12000]})
df2 = pd.DataFrame({'Alice' : [19, 'scientist', 25000], 'Bob' : [25, 'student', 11000]})
df3 = pd.DataFrame({'Alice' : [20, 'scientist', 26000], 'Bob' : [26, 'student', 10000]})

# List of DataFrames
dfs = [df1, df2, df3]

Скажем, вы хотите получить следующий файл DataFrame:

       Alice      Bob
0         18       24
1  scientist  student
2      24000    12000
0         19       25
1  scientist  student
2      25000    11000
0         20       26
1  scientist  student
2      26000    10000

Вы можете быстро попробовать решение в нашей интерактивной оболочке Python:

Упражнение : Распечатайте полученный DataFrame. Запустите код. Какая стратегия слияния используется?

Читайте о решении этого упражнения здесь.

Python Присоединяйтесь к пониманию списка и карта

Проблема : Учитывая Список объектов. Как ConcateNate Строковые представления этих объектов?

Пример : У вас есть следующий список объектов.

class Obj:
    def __init__(self, val):
        self.val = val

    def __str__(self):
        return str(self.val)

lst = [Obj(0), Obj(1), Obj(2), Obj(4)]

Вы хотите получить следующий результат объединенных строковых представлений объектов в списке.

0124

Решение со списком.

Присоединяйтесь () Функция ожидает Список строк Отказ Итак, вам нужно преобразовать все объекты х в простые строки, используя str (x) функция.

Тем не менее, нет необходимости создавать отдельный список, в котором вы храните строковые представления. Преобразование одного объект Достаточно, потому что функция объединения требуется только утечкой, как вход и не обязательно А Список Python . (Все списки Python являются имиталы, но не все, что есть списки Python.)

Чтобы освободить память, вы можете использовать выражение генератора (без квадратных кронштейнов, необходимых для создания списка):

print(''.join(str(x) for x in lst))
# 0124

Это гарантирует, что исходный список не существует в памяти дважды – один раз в виде списка объектов и один раз в виде списка строковых представлений этих точных объектов.

Альтернативное решение с картой:

Карта () Функция превращает каждый кортеж в строковое значение, а Присоединяйтесь () Метод преобразует Коллекция строк до одной строки, используя данный разделитель '-' Отказ Если вы забудете преобразовать каждый кортеж в строку с карта () Функция, вы получите Типеррор потому что Присоединяйтесь () Метод ожидает коллекции строк.

Лямбда функции являются анонимными функциями, которые не определены в пространство имен (У них нет имен). Синтаксис: лямбда <имя аргумента (ы)>: Отказ Далее вы увидите пример, где каждый аргумент функции отображается на его строковое представление.

print(''.join(map(lambda x: str(x), lst)))
# 0124

Этот метод является более функциональным стилем программирования – и некоторые кодеры Python предпочитают, что. Тем не менее, создатель Python Guido Van Rossum предпочитал понимание списка по функциональному программированию из-за читаемости.

Оптимизация : Нет необходимости использовать функцию лямбда для преобразования каждого элемента списка на строковое представление – если есть встроенная функция, которая уже делает именно это: str (...) Функция вы уже видели!

print(''.join(map(str, lst)))
# 0124

Из-за его Красительность и элегантность проезжая ул ...| Имя функции как аргумент функции в карта Функция - самый питон функционал способ решения этой проблемы.

Python Присоединяйтесь к списку списков

При просмотре Переполнение стека Время от времени я наткнулся на этот вопрос: « Как присоединиться к списку списков? ». Моя первая мысль заключается в том, что человек спрашивает со ссылкой на присоединиться() Функция который преобразует счетчику (например, список ) в строку по объединение его элементы.

Но ничто не может быть дальше от правды! Вопрос обычно о «спрвалении» списка: преобразовать Вложенный список списков такие как [[1, 2, 3], [4, 5, 6]] в плоский список [1, 2, 3, 4, 5, 6] . Итак, реальный вопрос:

Как сгладить список списков в Python?

Проблема : Учитывая Список списков Отказ Как сгладить список списков, избавившись от внутренних списков – и сохраняя свои элементы?

Пример : Вы хотите преобразовать данный список в плоский список, как здесь:

lst = [[2, 2], [4], [1, 2, 3, 4], [1, 2, 3]]

# ... Flatten the list here ...

print(lst)
# [2, 2, 4, 1, 2, 3, 4, 1, 2, 3]

Решение : Используйте вложенное Понимание списка Заявление [X для L в LST для x в l] сгладить список.

lst = [[2, 2], [4], [1, 2, 3, 4], [1, 2, 3]]

# ... Flatten the list here ...
lst = [x for l in lst for x in l]

print(lst)
# [2, 2, 4, 1, 2, 3, 4, 1, 2, 3]

Объяснение : В заявлении понимания вложенного списка [X для L в LST для x в l] , вы сначала повторяете все списки в списке списков ( для L в LST ). Затем вы итерете все элементы в текущем списке ( для X в L ). Этот элемент, вы просто размещаете во внешний список, без изменений, используя его в разделе «Выражение». Частью оператора понимания списка [ х для l в lst для x в l] Отказ

Попробуй сам : Вы можете выполнить этот код в нашей интерактивной оболочке Python. Просто нажмите «Запустить» и проверить вывод этого кода.

Упражнение : Как сгладить трехмерный список списков списков списков списков)? Попробуйте в раковине!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-join-list/”