(Python)字符串打印的第一个字母两次

时间:2017-03-02 15:45:39

标签: python

我试图将每个索引为%12 = 0的字母放入一个单独的字符串中。但由于某种原因,它会继续打印字符串的第一个字母两次?仅供参考:代码非常基本,我不擅长编码,但试图变得更好。感谢。

string1 = 'nfhcizhfpntxolaqhpgvjehzsw'

final = ' '

for letter in string1:
    if (string1.index(letter) % 12 == 0):
        final = final + letter
        print (letter)

输出以下内容:nnos

应该是:nos

1 个答案:

答案 0 :(得分:8)

index会返回字符串中第一个出现的字母。

由于n出现在第一个位置(它有效)但也出现在另一个位置,第二个调用返回0并且字母重复(它也有一个令人讨厌的{{ 1}}复杂性,因为它每次都从头开始搜索,即使它有效)

正确的方法是:

O(n**2)

将字符串切片以从索引0开始获取每个第12个字符。同时避免丑陋且表现不佳的字符串连接