或者用相应的索引替换字符串中的字符

2024-10-01 11:39:35 发布

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

如何在不迭代的情况下用相应的索引替换字符串中的可选字符?例如:

'abcdefghijklmnopqrstuvwxyz'

应返回为:

'a1c3e5g7i9k11m13o15q17s19u21w23y25'

我有下面的代码来实现这一点。但是,有没有一种方法可以跳过这个循环,或者更像是一种python的方法来达到这个目的

string = 'abcdefghijklmnopqrstuvwxyz'
new_string = ''
for i, c in enumerate(string):
    if i % 2:
        new_string += str(i)
    else:
        new_string += c

其中new_string保存我所需的值


Tags: 方法字符串代码in目的newforstring
1条回答
网友
1楼 · 发布于 2024-10-01 11:39:35

您可以使用list comprehension,然后用^{}重新连接字符;后者可以避免重复(缓慢)的字符串连接:

newstring = ''.join([str(i) if i % 2 else l for i, l in enumerate(string)])

请注意,这里不能回避迭代。即使您在这里定义了一个大的预先字符串化的奇数列表(odds = [str(i) for i in range(1, 1000, 2)]),如果要在列表上使用切片分配,Python也必须在引擎盖下迭代以重新分配索引。这就是处理任意长度序列的本质。你知道吗

相关问题 更多 >