合并这两个列表以获得python中所需的输出

2024-06-15 04:51:17 发布

您现在位置:Python中文网/ 问答频道 /正文

列表1=[th,sk,is,bl] 列表2=[ue,无,y,e]

输出=天空是蓝色的

合并两个给定列表并合并它们的元素以获得所需的输出


Tags: 元素列表is天空蓝色skblth
2条回答

您好,您可以使用zip和列表理解来完成以下任务:

List1 = ['th','sk','is','bl']
List2=['ue',None,'y','e']
temp = list(zip(List1, List2[::-1]))
words = [i[0]+i[1] for i in temp]
words = [''.join(item for item in i if item) for i in temp]
" ".join(item for item in words)

List2[::-1]用于反转列表

这是我刚刚写的一些,不确定它是否是最具Python风格的,但下面是:

List1 = ["th","sk","is","bl"]
List2 = ["ue",None,"y","e"]

concat = ""
for i in range(len(List1)):
    concat += List1[i]
    if List2[len(List2)-1-i]: concat += List2[len(List2)-1-i]
    concat += " "
print(concat)

预期产出:

the sky is blue

我得到:

>>> print(concat)
the sky is blue
>>>

但正如前面提到的,这个网站的目的是教而不是做。因此:

List1 = ["th","sk","is","bl"]
List2 = ["ue",None,"y","e"]
concat = ""

我们首先定义列表和“concatenation”变量,其中添加了部分

for i in range(len(List1)):

这适用于列表1中的所有项目-我可以只键入4,但这使将来的可扩展性变得容易

concat += List1[i]

列表1的顺序正确,数组从0开始。因此,首先我们有[0],第一项,到[3],最后一项

if List2[len(List2)-1-i]: concat += List2[len(List2)-1-i]

因为列表2中有一个None,所以不能将NoneType连接到字符串。因此,我们测试它是否实际上是一个值(只需执行“if string:”)。如果是,则将其附加到串联变量。我做len(列表2)-1-I的原因:

清单2是4长的 我们从i=0开始

4-1-0 = 3
4-1-1 = 2
4-1-2 = 1

最后, 4-1-3=0

您会注意到,这些索引与我们在列表1中使用的索引相同,但与列表2相反

concat += “ “

我们在单词之间加上空格,最后

print(concat)

我们把结果打印出来

相关问题 更多 >