如何从字符串列表中删除\n

2024-05-08 19:47:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个乌龟,它会转到列表上的位置,但我在执行此操作时遇到了问题,因为我的列表在每个位置后面都包含一个“\n”。我尝试浏览列表,并通过从原始列表中删除\n而将每个列表更改为不同的列表,而不使用\n

我试过lists.strip("\n"),但似乎不适合我。你知道吗

def gotoprocess():

    with open("one.txt", "r") as rp:
        print(rp.readlines())

        lists = rp.readlines()

        while True:
            for i in range(len(lists)):
                lists[i]

                if lists[i] == lists[-2]:
                    break
        print(lists)

我希望有这样的清单

['(-300.00,300.00)','(-200.00,200.00)']

但是有更多的数字。 我得到的是这个

['(-300.00,300.00)\n', '(-200.00,200.00)\n', '(-100.00,300.00)\n', '(-100.00,100.00)\n', '(-300.00,100.00)\n', '(-300.00,300.00)\n', '(-200.00,200.00)\n']

Tags: txttrue列表defaswithopenone
1条回答
网友
1楼 · 发布于 2024-05-08 19:47:07

strip("\n")应该可以工作。
但你可能弄错了两件事:

  1. ^{}是一个字符串方法,它应该应用于字符串元素(lists[i].strip("\n")),而不是列表(lists.strip("\n")
  2. ^{}返回修改后的字符串的副本,它不修改原始字符串

您可以使用剥离的字符串创建一个新列表:

lists = ['(-300.00,300.00)\n','(-200.00,200.00)\n', '(-100.00,300.00)\n','(-100.00,100.00)\n', '(-300.00,100.00)\n','(-300.00,300.00)\n', '(-200.00,200.00)\n']
locs = []

for i in range(len(lists)):
    locs.append(lists[i].strip("\n"))

print(locs)
# ['(-300.00,300.00)', '(-200.00,200.00)', '(-100.00,300.00)', '(-100.00,100.00)', '(-300.00,100.00)', '(-300.00,300.00)', '(-200.00,200.00)']

您可以通过列表理解进一步简化循环:

locs = [loc.strip("\n") for loc in lists]

print(locs)
# ['(-300.00,300.00)', '(-200.00,200.00)', '(-100.00,300.00)', '(-100.00,100.00)', '(-300.00,100.00)', '(-300.00,300.00)', '(-200.00,200.00)']

相关问题 更多 >