Я ежедневно собирал данные о потреблении электроэнергии в жилых домах. Данные были представлены в виде списка, где каждое значение состояло из двух элементов: первый указывал температуру, а второй — потребляемую мощность в мегаватт-часах.
Мне нужно было разделить каждое строковое значение на два отдельных элемента и сохранить их в отдельном списке. Для этого я использовал методы Split() и Extend() в Python.
С использованием методов Split() и Extend()
Метод split() в Python разделяет заданную строку на части, используя указанный разделитель. Метод extend() добавляет элементы в конец списка.
Ниже приведен синтаксис использования метода Split().
str.split(separator, maxsplit)
Где:
- separator: это разделитель, по которому данная строка разделяется или разделяется, если этот разделитель не указан, то строка разделяется по умолчанию на основе любых пробелов.
- maxsplit: используется для указания количества разбиений, которые вы хотите сделать, по умолчанию это -1, что означает отсутствие ограничений.
Кроме того, синтаксис метода expansion() приведен ниже.
list_name.extend(items)
Где:
- list_name: имя списка, для которого вызывается метод expansion() для добавления элементов вида в конец этого списка.
- Extend(): этот метод принимает элемент и добавляет его в конец списка.
- элементы: это время, которое может быть строкой, числом и т. д., которое вы хотите добавить в список.
Например, у вас есть список строк. В каждой строке первое число представляет собой среднюю дневную температуру в градусах Цельсия, а второе число описывает общее энергопотребление в жилом районе за этот день.
Каждая строка содержит два значения, разделённых запятой, как показано ниже.
power_consumtion_on_tem = ['15,30', '20,27', '25,25', '30,28', '35,32', '40,38']
Как вы могли заметить, каждая строка в списке представлена в формате «15, 30». Ваша задача — разделить каждую строку запятой и добавить полученные значения в новый список. Для этого можно воспользоваться функциями Split() и Extend(). Вот как это можно сделать:
newlist = [] for item in power_consumtion_on_temp : item = item.split(",") newlist.extend(item)
После выполнения приведенного выше кода распечатайте «новый список», как показано в коде ниже.
print(newlist)
Посмотрите на результат: в списке «newlist» содержатся все строковые значения списка «power_consumtion_on_temp». Как вы можете видеть, в новом списке каждое строковое значение отделено запятой.
Давайте разберёмся с частью кода: «для элемента в power_consumtion_on_temp:». Эта строка запускает цикл, который перебирает каждое строковое значение из списка «power_consumtion_on_temp».
Следующая строка кода внутри цикла — это «item = item.split(“,”)». Она принимает каждую строку и использует метод Split(‘,’) с запятой в качестве аргумента. Этот метод разделяет текущее значение строки на основе запятой.
Наконец, строка кода «newlist.extend(item)» вызывает метод «extend()» с разделёнными строковыми значениями в качестве аргумента метода «extend()». Это добавляет эти строковые значения в новый список, который называется «newlist».
Таким образом, в результате «новый список» содержит все строки, разделенные запятыми, например [’15’, ’30’, ’20’, ’27’, ’25’, ’25’, ’30’, ’28 ‘, ’35’, ’32’, ’40’, ’38’].
Используя понимание списка
Понимание списка — это способ перебора элементов списка, выполнения над ними определённых операций и возврата результата в виде нового списка.
Чтобы разделить список в Python, нужно использовать два цикла, которые будут работать внутри списка. Например:
power_consumtion_on_tem = ['15,30', '20,27', '25,25', '30,28', '35,32', '40,38']
Используйте понимание списка, как показано в коде ниже, чтобы разделить строку на части, разделённые запятыми.
new_data = [item for data in power_consumtion_on_temp for item in data.split(',')] print(new_data)
Посмотрите на результат: понимание списка также разделяет строку в списке запятой.
Давайте рассмотрим, как два цикла внутри списка дают такой результат. Первый цикл for — это «for data in power_consumtion_on_temp», он обозначен жёлтой стрелкой на рисунке.
Этот цикл перебирает каждую строку списка power_consumtion_on_temp. Это означает, что он обращается к каждой строке списка и сохраняет ссылку на строку в «данных». Затем для каждых «данных» новый цикл вызывает метод Split(‘,’) с разделителем в виде запятой. Этот метод разделяет данные запятой.
Затем отдельные строковые значения заполняются в список с использованием «элемента» в начале списка. Для каждого набора данных выполняется операция разделения(‘,’). Каждый набор данных разделяется запятой, а затем разделённые данные добавляются в список.
В результате после перебора каждого строкового значения в списке создается новый список с именем new_data, содержащий отдельное строковое значение списка, например: ‘[’15’, ’30’, ’20’, ’27’, ‘ 25′, ’25’, ’30’, ’28’, ’35’, ’32’, ’40’, ’38’]’.