[英]Merging two list elements into one in python?
我有兩個清單說:
list1 = ['a','b','a','b']
l2 =['e','d']
如何合並到新列表中
l3 =['a_e','b_e','a_d',b_d']
試試這個方法:
list1 = ['a','b','a','b']
l2 =['e','d']
print([el1+'_'+el2 for el2 in l2 for el1 in sorted(set(list1))])
Output:
['a_e', 'b_e', 'a_d', 'b_d']
使用一個簡單的 For 循環:
list1 = ['a','b','a','b']
l2 =['e','d']
new_list = []
for char in list1:
for char_2 in l2:
item = char + '_' + char_2
new_list.append(item)
print(new_list)
Output
['a_e', 'a_d', 'b_e', 'b_d', 'a_e', 'a_d', 'b_e', 'b_d']
如果您不想重復第一個列表中的項目(這可能是預期列表中的內容)
使用一套將確保不是多個項目。
list1 = ['a','b','a','b']
l2 =['e','d']
new_list = []
for char in set(list1):
for char_2 in l2:
item = char + '_' + char_2
new_list.append(item)
print(new_list)
['a_e', 'a_d', 'b_e', 'b_d']
list1 = ['a','b','a','b']
l2 =['e','d']
new_list = [char + '_' + char_2 for char_2 in l2 for char in set(list1)]
print(new_list)
如果對於預期的 Output 您還關心元素的順序,您可以通過將集合中的第一個列表轉回一個列表來簡單地破解它,如下所示:
list1 = ['a','b','a','b']
l2 =['e','d']
list1 = set(list1)
list1 = list(list1)
new_list = [char + '_' + char_2 for char_2 in l2 for char in list1]
print(new_list)
Output
['a_e', 'b_e', 'a_d', 'b_d']
你可以做這樣的事情(這里我假設len(l2) == len(list1) / 2
):
l3 = [f'{list1[i]}_{l2[i//2]}' for i in range(len(list1))]
如果您的列表很大,這種方法比其他答案中給出的方法更有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.