我有3个python列表:
第一个是数字列表:
numbers = ['4554176', '4554178', '4555289', '4555522', '4555661', '4555693', '4555695', '4556068']
第二个是8个列表的列表:
lists = [
['dune', 'pro', 'pc', 'case'],
['apple', 'typische', 'kaesereiben', 'muster'],
['orientiert', 'profi', 'mac', 'mac'],
['handel', 'hersteller', 'pc', 'gehaeusen'],
['optik', 'kaesereibe', 'nutzer', 'ueberarbeitete', 'apple'],
['design', 'geklont', 'nennt', 'dune', 'pc'],
['oktober', 'form', 'kickstarter', 'projekts', 'realitaet'],
['annehmen', 'preise', 'genannt', 'signifikant']
]
第三个列表与第二个列表相同,但词干为:
lists1 = [
['dune', 'pro', 'pc', 'case'],
['apple', 'typisch', 'kaesereibe', 'must'],
['orientier', 'profi', 'mac', 'mac'],
['handel', 'hersteller', 'pc', 'gehaeuse'],
['optik', 'kaesereib', 'nutz', 'ueberarbeit', 'apple'],
['design', 'geklon', 'nenn', 'dune', 'pc'],
['oktober', 'form', 'kickstart', 'projekts', 'realitaet'],
['annehm', 'preis', 'genann', 'signifikant']
]
现在,我想把每个列表的未梗塞词干的单词写到新列表中。
另外,我想将第一个列表中的数字写到新创建的列表中。
结果应如下所示:
new_list = [['dune','dune','4554176'],
['pro','pro','4554176'],
['pc','pc','4554176']
...,
['annehmen','annehm','4556068']]
有人可以帮忙吗?
答案 0 :(得分:2)
只需遍历可能的值并构建一个新列表:
result = []
for i in range(len(lists)):
for j in range(len(lists[i])):
result.append([lists[i][j], lists1[i][j], numbers[i]])
print(result)
输出:
[['dune', 'dune', '4554176'], ['pro', 'pro', '4554176'], ['pc', 'pc', '4554176'], ['case', 'case', '4554176'] .... ]
答案 1 :(得分:2)
您可以将嵌套列表理解与zip
一起使用:
new_list = [[*s, n] for n, l in zip(numbers, zip(lists, lists1)) for s in l]
结果:
[['dune', 'dune', '4554176'], ['pro', 'pr:43)o', '4554176'], ['pc', 'pc', '4554176'],['case', 'case', '4554176'], ['apple', 'apple', '4554178'], ['typische', 'typische', '4554178'], ['kaesereiben', 'kaesereiben', '4554178'], ['muster', 'muster', '4554178'], ['orientiert', 'orientiert', '4555289'], ['profi', 'profi', '4555289'], ['mac', 'mac', '4555289'], ['mac', 'mac','4555289'], ['handel', 'handel', '4555522'], ['hersteller', 'hersteller', '4555522'], ['pc', 'pc', '4555522'], ['gehaeusen', 'gehaeusen', '4555522'], ['optik', 'optik', '4555661'], ['kaesereibe', 'kaesereibe', '4555661'], ['nutzer', 'nutzer', '4555661'], ['ueberarbeitete', 'ueberarbeitete', '4555661'], ['apple', 'apple', '4555661'], ['design', 'design', '4555693'], ['geklont', 'geklont', '4555693'], ['nennt', 'nennt', '4555693'], ['dune', 'dune','4555693'], ['pc', 'pc', '4555693'], ['oktober', 'oktober', '4555695'], ['form', 'form', '4555695'], ['kickstarter', 'kickstarter', '4555695'], ['projekts', 'projekts', '4555695'], ['realitaet', 'realitaet', '4555695'], ['annehmen', 'annehmen', '4556068'], ['preise', 'preise', '4556068'], ['genannt', 'genannt', '4556068'], ['signifikant', 'signifikant', '4556068']]
答案 2 :(得分:1)
您可以使用for循环来遍历每个数字,然后在列表理解中可以使用zip函数合并嵌套列表
newlist = []
for i in range(len(numbers)):
newlist+= [[j,k,numbers[i]] for j,k in zip(lists[i],lists1[i])]
print(newlist)
答案 3 :(得分:0)
假设numbers
的大小与两个列表的大小相同,则可以很容易地通过列表理解和使用range
进行索引来做到这一点:
new_list = [ [lists[i][j], lists1[i][j], numbers[i] for j in range(len(lists[i]))] for i in range(len(numbers)) ]