Python:如何使用min()获得结果

2024-09-30 22:18:46 发布

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

给定字符串s1和s2(不一定长度相同),创建一个由s1和s2的交替字符组成的新字符串(即,s1的第一个字符后跟s2的第一个字符,接着是s1的第二个字符,然后是s2的第二个字符,依此类推。一旦到达任一字符串的末尾,就不会添加任何其他字符。例如,如果s1包含“abc”,s2包含“uvwxyz”,则新字符串应包含“aubvcw”。将新字符串赋给变量s3。在

我试过这样做,但总是给我一个错误:

s3 = ""
for i in range(len(s1)):
    s3 += s1[i] + s2[i]
    join.min(s1,s2)

例如,s1是"abc",s2是"uvwxyz"。 s3应该得到"aubvcw"。在


Tags: 字符串inforlens3错误range字符
1条回答
网友
1楼 · 发布于 2024-09-30 22:18:46

我提出两种解决方案。一个使用min()函数,另一个不。。。在

使用min()

In [26]: s3 = ''

计算每个字符串的长度,并使用min()来获取最短的长度。在

^{pr2}$

通过在range()函数中使用short,我们可以将迭代次数限制为最短字符串中的字符数。。。在

In [28]: for i in range(short):
    ...:     s3 += s1[i] + s2[i]
    ...:

In [29]: s3
Out[29]: 'aubvcw'

不使用min()

不使用min()的一个可能的解决方案是利用zip()函数和字符串方法{}。在

zip函数对元素逐个来自每个输入,当到达最短输入的末尾时,默认情况下停止创建对)。在

In [18]: s1 = 'abc'

In [19]: s2 = 'uvwxyz'

在本例中,zip()将生成一个对序列,如下所示: (‘a’、‘u’) (“b”、“v”) (“c”、“w”)

下面的内部''.join()方法用一个空字符串组合每个对的每个元素。这将产生一系列有向图:'au''bv''cw'。在

然后,外部''.join()方法将每个有向图与一个空字符串组合在一起。在

In [22]: ''.join(''.join(pair) for pair in zip(s1, s2))
Out[22]: 'aubvcw'

相关问题 更多 >