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

How to remove final character in a number of strings?

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

代码

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

test.txt

ABCABC
XYZXYZ

输出

ABCABC

期望输出

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

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

改变这个seqs=seqs[:-1]

list comprehension:

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

注:

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

seqs 是行列表。您需要循环访问每一行:

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

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

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

然后你可以将列表加入回一个字符串:"\n".join(data)