我正在尝试创建一个乌龟,该乌龟可以转到列表中的位置,但是这样做很麻烦,因为我的列表在每个位置之后都包含一个“ \ 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']
答案 0 :(得分:1)
strip("\n")
应该可以使用。
但是您可能错了两件事:
strip()
是一种字符串方法,应将其应用于字符串元素(lists[i].strip("\n")
),而不是列表(lists.strip("\n")
)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)']