抱歉,如果我的格式错误,因为这是我第一次在这里发帖。我是 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 代码。