方法一:最简短的代码,可以使用列表推导式和集合的特性来编写代码。
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
merged = = list1 + [item for item in list2 if item not in list1]
print(merged)
输出结果:
[1, 2, 3, 4, 5, 6]
在这个方法中,我们使用列表推导式生成一个新列表。首先,我们将第一个列表的所有元素添加到新列表中。然后,我们遍历第二个列表的元素,但只添加那些在第一个列表中不存在的元素到新列表中。这种方法利用了列表推导式和条件判断,使代码更加简洁。
方法二:是方法一的具体版本,逻辑和方法一一样,可以通过此方法去理解方法一的写法。
def merge_lists(list1, list2):
merged_list = list1[:] # 复制第一个列表的所有元素到新列表中
for item in list2:
if item not in merged_list: # 检查元素是否在新列表中
merged_list.append(item) # 将元素添加到新列表的末尾
return merged_list
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
merged = merge_lists(list1, list2)
print(merged)
输出结果:
[1, 2, 3, 4, 5, 6]
这段代码将首先复制第一个列表的所有元素到一个新列表中,然后遍历第二个列表。如果遍历到的元素不在新列表中,就将其添加到新列表的末尾。最后返回合并后的新列表。
方法三:可以使用集合(set)的特性来完成。具体代码如下。
def merge_lists(list1, list2):
merged_set = set(list1) # 将第一个列表转换为集合
merged_list = list1[:] # 复制第一个列表的所有元素到新列表中
for item in list2:
if item not in merged_set: # 检查元素是否在集合中
merged_list.append(item) # 将元素添加到新列表的末尾
merged_set.add(item) # 将元素添加到集合中
return merged_list
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
merged = merge_lists(list1, list2)
print(merged)
输出结果一样。
[1, 2, 3, 4, 5, 6]
在这个方法中,我们首先将第一个列表转换为一个集合,这样可以加快检查元素是否存在的速度。然后,我们复制第一个列表的所有元素到一个新列表中。接下来,我们遍历第二个列表的元素,如果元素不在集合中,则将其添加到新列表的末尾,并将其添加到集合中。最后返回合并后的新列表。这种方法利用了集合的唯一性特性,确保合并后的列表中不会出现重复的元素。