根据另一个列表中的值从两个列表创建一个列表

时间:2018-01-11 07:52:24

标签: python python-3.x list merge

list1=['String-1', 'String-2', 'String-1', 'String-1', 'String-2', 'String-2', 'String-1', 'String-2', 'String-1', 'String-2']
list2=['TEXT-1', 'TEXT-1', 'TEXT-1', 'TEXT-1', 'TEXT-1']
list3=['TEXT-2', 'TEXT-2', 'TEXT-2', 'TEXT-2']

我想根据list1中的值从list2和list3构造列表4 如果list1 = String-1中的值然后从list2中选择,则从list3中选择

finallist=['TEXT-1', 'TEXT-2', 'TEXT-1', 'TEXT-1', 'TEXT-2', 'TEXT-2', 'TEXT-1', 'TEXT-2', 'TEXT-1', 'TEXT-2']

任何帮助?

2 个答案:

答案 0 :(得分:0)

这应该做:

list1=['String-1', 'String-2', 'String-1', 'String-1', 'String-2', 'String-2', 'String-1', 'String-2', 'String-1', 'String-2']
list2=['TEXT-1', 'TEXT-1', 'TEXT-1', 'TEXT-1', 'TEXT-1']
list3=['TEXT-2', 'TEXT-2', 'TEXT-2', 'TEXT-2', 'TEXT-2']

list2chosen,list3chosen = 0,0
finallist = []
for n in list1:
    if n == "String-1":
        finallist.append(list2[list2chosen])
        list2chosen += 1
    elif n == "String-2":
        finallist.append(list3[list3chosen])
        list3chosen += 1

print(finallist)

答案 1 :(得分:0)

试试这个:

finallist = [list2[0] if i == "String-1" else list3[0] for i in list1]
print(finallist)