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

时间:2018-09-25 16:08:50

标签: python python-3.5

对不起,如果我的格式错误,因为这是我第一次在此处发布。我是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

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

4 个答案:

答案 0 :(得分:2)

James John Ryan Becky  William  Isaac
zip_longest

如果您想在此处使用zip,则由于两者的大小不均,因此必须为{{1}}

答案 1 :(得分:0)

这只是在阐述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)

答案 2 :(得分:0)

我不知道为什么大多数答案都带有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

答案 3 :(得分:0)

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

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。