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

时间:2019-01-06 23:22:20

标签: python python-3.x list newline

我正在尝试创建一个乌龟,该乌龟可以转到列表中的位置,但是这样做很麻烦,因为我的列表在每个位置之后都包含一个“ \ n”。我尝试遍历该列表,并通过将\ 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']

1 个答案:

答案 0 :(得分:1)

strip("\n")应该可以使用。
但是您可能错了两件事:

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

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

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)']