如何删除多个字符串中的最终字符?

时间:2016-01-12 09:36:39

标签: python string trailing

我有一些字符串,我想删除每个字符串的最后一个字符。当我尝试下面的代码时,它会删除我的第二行字符串而不是删除最后一个元素。以下是我的代码:

代码

with open('test.txt') as file:
    seqs=file.read().splitlines()
    seqs=seqs[:-1]

的test.txt

ABCABC
XYZXYZ

输出

ABCABC

所需的输出

ABCAB
XYZXY

4 个答案:

答案 0 :(得分:10)

更改此seqs=seqs[:-1]

list comprehension

seqs=[val[:-1] for val in seqs]

注意:

  • 旧方法中的问题是seq是字符串i.e)["ABCABC","XYZXYZ"]的列表。您只是获得前一项ABCABC,它解释了输出。
  • 我所做的是从列表中获取字符串并省略它的最后一个字符。

答案 1 :(得分:5)

with open('test.txt') as file:
    for seq in file:
        print seq.strip()[:-1]

这将遍历文件中的每一行并打印省略最后一个字符的行

答案 2 :(得分:4)

file.read().splitlines()返回一个列表。因此,以下内容可以解决您的问题:

enter with open('test.txt') as file:
    data = list(map(lambda x: x[:-1], file.read().splitlines()))

然后,您可以将列表重新加入字符串:"\n".join(data)

答案 3 :(得分:2)

seqs是一个行列表。您需要遍历这些行来访问每一行:

with open('test.txt') as file:
    seq = file.read().splitlines()
    for word in seq:
        word = word[:-1]
        print word