如何在不迭代的情况下用相应的索引替换字符串中的可选字符?例如:
'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
保存我所需的值
您可以使用list comprehension,然后用^{} 重新连接字符;后者可以避免重复(缓慢)的字符串连接:
请注意,这里不能回避迭代。即使您在这里定义了一个大的预先字符串化的奇数列表(
odds = [str(i) for i in range(1, 1000, 2)]
),如果要在列表上使用切片分配,Python也必须在引擎盖下迭代以重新分配索引。这就是处理任意长度序列的本质。你知道吗相关问题 更多 >
编程相关推荐