尝试将列表添加到文本文件时出现错误

时间:2020-08-12 10:16:57

标签: python types

我正在尝试获取要写入文本文件的列表,添加到文件中的代码是这样的:

text_file = open("tim's diner menu.txt", "w")
menu = (["all day breakfast large, £5.50", "all day breafast small, £3.50", "hot dog, £3.00", "burger, £4.00", "cheese burger, £4.25", "chicken goujons, £3.50", "fries, £1.75", "salad, £2.20", "milkshake, £2.20", "soft drinks, £1.30", "still water, £0.90", "sparkling water, £0.90"])
def menu_rewrite():
    for i in menu:
        text_file.write (menu[i])

运行此函数时,出现错误:

TypeError: list indices must be integers or slices, not str

我想不出什么坏了,已经尝试了我能想到的一切来使它起作用,但是它没有起作用,你们能帮我吗?

4 个答案:

答案 0 :(得分:0)

检查语法参考。 for在这里不使用索引,括号()用于元组...

menu = ["all day breakfast large, £5.50", "all day breafast small, £3.50", "hot dog, £3.00", "burger, £4.00", "cheese burger, £4.25", "chicken goujons, £3.50", "fries, £1.75", "salad, £2.20", "milkshake, £2.20", "soft drinks, £1.30", "still water, £0.90", "sparkling water, £0.90"]


def menu_rewrite():
    for item in menu:
        text_file.write(item)

答案 1 :(得分:0)

如果您写for i in menu,则imenu的所有值一个接一个,而不是它们的索引,因此您需要写text_file.write(i)而不是{ {1}}。

答案 2 :(得分:0)

在您的代码中istr

更改为:

def menu_rewrite():
    for i in menu:
        text_file.write(i)

def menu_rewrite():
    for i in range(len(menu)):
        text_file.write(menu[i])

答案 3 :(得分:0)

我尝试了其中一些建议,但我认为它们做了一些事情,但现在又出现了另一个错误。感谢您对发布解决方案的所有人的帮助

相关问题