3

各文字列の最後の文字を削除したい文字列がいくつかあります。以下のコードを試すと、最後の要素を削除する代わりに、文字列の 2 行目を削除します。以下は私のコードです:

コード

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

test.txt

ABCABC
XYZXYZ

出力

ABCABC

望ましい出力

ABCAB
XYZXY
4

4 に答える 4

10

これを変えるseqs=seqs[:-1]

list comprehension:

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

ノート:

  • あなたの古い方法の問題は、それseqが文字列のリストであることです["ABCABC","XYZXYZ"]ABCABC出力を説明する最後の項目の前に項目を取得しています。
  • 私がやったことは、リストから文字列を取得し、最後の文字を省略することです。
于 2016-01-12T09:41:21.763 に答える
5
with open('test.txt') as file:
    for seq in file:
        print seq.strip()[:-1]

これは、ファイル内のすべての行を繰り返し処理し、最後の文字を省略して行を出力します

于 2016-01-12T09:41:04.127 に答える
4

file.read().splitlines()リストを返します。したがって、次の方法で問題を解決できます。

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

次に、リストを結合して文字列に戻すことができます。"\n".join(data)

于 2016-01-12T09:43:33.807 に答える