如何在 Python3 中合并两个不相等的 input/list
How do you merge two unequal input/list in 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
我不太清楚我需要做什么才能获得正确的输出。
这只是在阐述 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)
我不知道为什么大多数答案都有 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
您需要扩展较小的列表以使其大小与另一个相同。
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 代码。
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
,因为两者的大小不均匀
抱歉,如果我的格式有误,因为这是我第一次在这里发帖。我是 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
我不太清楚我需要做什么才能获得正确的输出。
这只是在阐述 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)
我不知道为什么大多数答案都有 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
您需要扩展较小的列表以使其大小与另一个相同。
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 代码。
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
,因为两者的大小不均匀