2024-05-16 07:54:23 发布
网友
我有两份清单:
list1 = ['a','b','a','b'] l2 =['e','d']
我如何进入一个新的列表
l3 =['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)
输出
['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)
如果对于预期的输出,您也关心元素的顺序,您可以简单地通过将集合中的第一个列表转换回列表来解决此问题,如下所示:
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)
['a_e', 'b_e', 'a_d', 'b_d']
您可以这样做(这里我假设len(l2) == len(list1) / 2):
len(l2) == len(list1) / 2
l3 = [f'{list1[i]}_{l2[i//2]}' for i in range(len(list1))]
如果您的列表很大,这种方法比其他答案中给出的方法更有效
试着这样做:
list1 = ['a','b','a','b'] l2 =['e','d'] print([el1+'_'+el2 for el2 in l2 for el1 in sorted(set(list1))])
输出:
使用简单的For循环:
输出
如果您不想重复第一个列表中的项目(这可能是预期列表中的项目)
使用集合将确保没有多个项目
使用列表理解
注
如果对于预期的输出,您也关心元素的顺序,您可以简单地通过将集合中的第一个列表转换回列表来解决此问题,如下所示:
输出
重复问题
您可以这样做(这里我假设
len(l2) == len(list1) / 2
):如果您的列表很大,这种方法比其他答案中给出的方法更有效
试着这样做:
输出:
相关问题 更多 >
编程相关推荐