#python #list #append #sublist
#python #Список #добавить #подсписок
Вопрос:
У меня есть огромный список, который был импортирован из файла csv. Этот список содержит более 40 000 строковых элементов. Я хочу разделить каждый элемент на независимый список.
Это выдержка из моего списка:
['090-102 XX.Abcdefg;Female;95 y más años;1985;24n',
'090-102 XX.Abcdefg;Female;95 y más años;1984;52n',
'090-102 XX.Abcdefg;Female;95 y más años;1983;60n',
'090-102 XX.Abcdefg;Female;95 y más años;1982;61n',
'090-102 XX.Abcdefg;Female;95 y más años;1981;63n',
'090-102 XX.Abcdefg;Female;95 y más años;1980;48n']
Я хочу, чтобы каждый элемент в списке был разделен на новый список следующим образом:
[['090-102 XX.Abcdefg,Female,95 y más años,1985,24n']
['090-102 XX.Abcdefg,Female,95 y más años,1984,52n']
['090-102 XX.Abcdefg,Female,95 y más años,1983,60n']
['090-102 XX.Abcdefg,Female,95 y más años,1982,61n']
['090-102 XX.Abcdefg,Female,95 y más años,1981,63n']
['090-102 XX.Abcdefg,Female,95 y más años,1980,48n']]
И мне также нужно вставить новые элементы (элементы из двух других списков) в новые разделенные подсписки:
other_list = ['XX','XX','XX','XX','XX','XX']
other_list2 = [20, 20, 20, 20, 20, 20]
Итак, мой конечный результат выглядит так:
[['090-102 XX', 'XX', 20, 'Abcdefg,Female,95 y más años, 1985, 24n']
['090-102 XX', 'XX', 20, 'Abcdefg,Female,95 y más años, 1985, 24n']
['090-102 XX', 'XX', 20, 'Abcdefg,Female,95 y más años, 1985, 24n']
['090-102 XX', 'XX', 20, 'Abcdefg,Female,95 y más años, 1985, 24n']
['090-102 XX', 'XX', 20, 'Abcdefg,Female,95 y más años, 1985, 24n']
['090-102 XX', 'XX', 20, 'Abcdefg,Female,95 y más años, 1985, 24n']]
Я не знаю, должен ли я сначала добавлять элементы в огромный список, прежде чем разделять его на подсписки. Любая помощь будет принята с благодарностью.
Ответ №1:
Я предполагаю, что все ваши списки имеют одинаковую длину, в противном случае вам сначала нужно заполнить пробелы. Я вижу, что вы пытаетесь создать новый список из 3 (или более) списков, и новый список имеет одинаковый формат для всех его элементов. Сначала вы можете разделить элементы из вашего первого списка на точки,:
newList1=[]
for i in list11:
newList1.append(i.split('.'))
это преобразует каждый элемент вашего списка в список, где первый элемент — это то, что перед точкой, а второй элемент — это то, что после точки. Затем добавляет в этот список newList1
переменную.
после этого это простой цикл for:
a = [['xx','xx'], ['yy', 'yy'] , [ 'zz', 'zz']]
b = [1,2,3]
c = [0, 00, 000]
newList2 = []
for i in range(len(a)):
newList2.append(a[i][0] str(b[i]) a[i][1] str(c[i])) #adjust to your format
Комментарии:
1. Привет! спасибо за ответ. Я смог разделить элементы из моего первого списка на точки. Однако, когда я пытаюсь выполнить цикл for, я получаю эту ошибку: «TypeError: можно только объединить str (не «int») в str»
2. Вы правы. Мы должны преобразовать любые числовые значения в строки. Смотрите Мое редактирование последней строки.