Python 如何将列表转换为字符串,但显示CSV文件的元素?

Python 如何将列表转换为字符串,但显示CSV文件的元素?,python,string,list,csv,Python,String,List,Csv,我需要展示这一点:迄今为止做出的4个选择=['1'、'2'、'8'、'6']和成本=$20.8 以这种格式: 菜品无菜菜品价格适合素食者 0个烤虎虾4.5个是的 我还需要尝试,并在最后包括有多少菜不适合素食者 以下是我的尝试: spent = 0 order = [] menu = [ ['course', 'dish', 'price', 'suitable for vegetarians'], ['starter', 'Liver Pate and Toast', '3.5

我需要展示这一点:迄今为止做出的4个选择=['1'、'2'、'8'、'6']和成本=$20.8

以这种格式:

菜品无菜菜品价格适合素食者

0个烤虎虾4.5个是的

我还需要尝试,并在最后包括有多少菜不适合素食者


以下是我的尝试:

spent = 0
order = []
menu = [
    ['course', 'dish', 'price', 'suitable for vegetarians'],
    ['starter', 'Liver Pate and Toast', '3.5', 'no'],
    ['main course', 'Beef Wellington', '10.95', 'no'],
    ['main course', 'Honey Glazed Duck Breast', '9.5', 'no'],
    ['dessert', 'Tiramisu', '3.5', 'yes'],
    ['dessert', 'Rhubarb Crumble', '3.9', 'yes']
]

#Menu imported into python, no need to leave file open
while True:
    dishes = -1

    for dish in menu:
        if dishes == -1:
                print ("Dish No".ljust(10), end="")
        else:
                print(str(dishes).ljust(10), end="")

        print(dish[0].ljust(15), end="")
        print(dish[1].ljust(30), end="")
        print(dish[2].ljust(15), end="")
        print(dish[3], end="\n\n")
        dishes += 1

    reply = input("Please choose your first item: ")
    if reply.upper () == "Q":
        break

    print()
    spent = spent + float(menu[int(reply)+1][2])
    order = order + [reply]
    print(len(order), "choices made so far =", order, "and cost = £ ", spent)
    print()
    print ("Please choose an item from the menu (0-9 or press Q to end): ")
    print()
    print ((order)dish[0,1,2,3]) #Displays order as text and not list
CSV文件中包含以下内容:

适合素食者的菜价 开胃煎虎虾4.5是的 布鲁谢塔山羊起司3.9是的 发酵剂肝酱和烤面包3.5个 主菜牛肉惠灵顿10.95号 主菜素食菲罗·鲁拉德7.5是的 主菜水煮鲑鱼配莳萝11.5号 主菜蜜汁鸭胸脯9.5号 甜点提拉米苏3.5是的 甜点深碟苹果派3.9是的 甜点大黄面包屑3.9是的

考虑一下

    reply = input("Please choose your first item: ")
    if reply.upper () == "Q":
        break
如果希望它是一个整数,请首先执行以下操作:

    reply = int(reply)
添加到花费的
和订单中:

    print()
    spent += float(menu[reply+1][2])
    order.append(reply)
像以前一样打印一些菜单内容:

    print(len(order), "choices made so far =", order, "and cost = £ ", spent)
    print()
    print ("Please choose an item from the menu (0-9 or press Q to end): ")
    print()
您可以使用
菜单[回复+1][1]
打印所选项目:

    print("You ordered", menu[reply+1][1], "bringing your total to", spent)
    print()

有人在一篇单独的帖子中提到了str.join,但我不知道如何使用它!现在,最后一行出现另一个错误(
SyntaxError:invalid syntax
)。看看你能不能把它改成你想做的。然后我可能可以运行它:)。最后一行可以删除,这就是我一直坚持的地方。我正在尝试获取已选择作为文本列表而不是整数打印的顺序。最后一句话是我的经验,我几乎做到了。得到了一个完全独立的错误,由于尝试和除了,但它现在工作的大部分。谢谢你的帮助和耐心