如何从奇数编号的字符串中删除字符?

时间:2017-05-02 20:14:20

标签: python

如果我有这样的字符串:ABCDE

我想一次读取两个字符(AB然后是CD)并删除无法在元组或两个字符中读取的剩余字符(E)。我该如何删除这些字符?

到目前为止,我有以下代码:

s = 'ABCDE'

for (first, second) in zip(s[0::2], s[1::2]):
    if not first or not second:
        if first:
                s.replace(first, '')
                continue
        else:
                s.replace(second, '')
                continue
    print first, second

print s

这段代码打印(A B C D)这很好,但我想删除for循环中的额外E,我试图用if语句。我检查元组的firstsecond变量是否为空字符串,然后从原始s变量中删除哪一个不是空字符串。

以上代码似乎不起作用。有没有人有不同的建议或我如何改进?

2 个答案:

答案 0 :(得分:4)

如果你想删除最后一个字符,以防字符串的长度为奇数:

BEGIN

现在,如果你想一次阅读两个角色,这是一种更直觉的方式:

word = "ABCDE"

if len(word) % 2 == 1:
    word = word[:-1]

后者甚至会为你丢掉最后一个角色。

答案 1 :(得分:0)

str = "ABCDE"

for i, k in zip(str[::2], str[1::2]):
    print(i + k)

输出:

AB
CD