如何在 Python3 中合并两个不相等的输入/列表



抱歉,如果我的格式错误,因为这是我第一次在这里发帖。我是 Python3 的新手,所以我的问题可能看起来很基本。我已经在下面发布了输入和输出。

Input1: James Ryan
Input2: John Becky William Isaac
Output: James John Ryan Becky William Isaac

我的代码当前

Enter1 = input('').split()
Enter2 = input('').split()
Enter3 = (' ').join(x for i in zip(Enter1, Enter2) 
for x in i)
print(Enter3)

我当前的代码为我提供了以下内容:

Input1: James Ryan
Input2: John Becky William Isaac
Output: James John Ryan Becky

我不完全知道我需要做什么才能实现正确的输出。

from itertools import zip_longest
name3 = list(zip_longest(name1.split(), name2.split(), fillvalue = ''))
print(' '.join([j for i in name3 for j in i]))
James John Ryan Becky  William  Isaac

如果你想在这里使用zip,由于两者的大小不均匀,它将不得不zip_longest

我不知道为什么大多数答案都list1+list2,因为它只会附加列表,这不是预期的输出。您可以尝试以下操作。从您提供的示例中获取顺序,其中一个元素来自较小的列表,另一个元素来自较大的列表。

input1='John Becky William Isaac'
input2='James Ryan'
input1=input1.split(' ')
input2=input2.split(' ')
new=[]
max_list,min_list=(input1,input2) if len(input1)>len(input2) else (input2,input1)
for i in range(len(min_list)):
new.append(min_list[i]+' '+max_list[i])
new += max_list[len(min_list):]
print(' '.join(new)) # James John Ryan Becky William Isaac

这只是对Arihant的回答的阐述:

Enter3 = Enter1 + Enter2
for all in Enter3:
print(all)

如果要将其另存为变量:

output = []
for all in Enter3:
output.append(all)
string_output = " ".join(output)
print(string_output)

您需要扩展较小的列表以使其大小与另一个列表相同。

delta = ans(len(Enter1) - len(Enter2))
lst_to_append = [''] * delta
if len(Enter1) < len(Enter2):
Enter1.extend(lst_to_append)
else:
Enter2.extend(lst_to_append)

按原样使用 Enter3 代码。

最新更新