如何将列表转换为字符串?

时间:2016-03-09 14:39:13

标签: python string list python-3.5

我做了什么:

with open('TheData.txt', 'r') as data_file:

        money = data_file.read()
        wednesday_tickets = ['W1', 'W2', 'W3']
        thursday_tickets = ['T1', 'T2', 'T3']
        friday_tickets = ['F1', 'F2', 'F3']

    countW = money.count (wednesday_tickets)
    countT = money.count (thursday_tickets)
    countF = money.count (friday_tickets)

    wednesday = countW * 5
    thursday = countT * 5
    friday = countF * 10

    money_raised = wednesday + thursday + friday

    print("The total money raised for charity is £ " + money_raised)

问题: 当我运行我的程序时,我收到了“TypeError:无法转换' list'反对str含义'背部。我已经在我的知识中尝试了所有的东西,但我不知道应该做些什么来克服这个问题。 我对这段代码的目的是通过计算文件中有多少T1,T2,T3,W1,W2来计算出多少钱,并将它们与它们的价格相乘。

1 个答案:

答案 0 :(得分:0)

问题在于以

开头的3行
countW = money.count (wednesday_tickets)

count方法需要单个字符串,而不是字符串列表。您似乎想要总计数,每种票类型都有一个计数。您可以通过

替换该行
countW = sum(money.count(ticket) for ticket in wednesday_tickets)

同样接下来的两行。这不是最有效的方法,因为它涉及总共9次传递数据,但如果这实际上是关于像高中游戏那样的门票我会感到惊讶,如果效率是一个很大的问题。 / p>

此外,您的上一个打印声明无法正常工作,因为您无法直接组合字符串和数字。相反,使用

print("The total money raised for charity is £", money_raised)

让print函数将数字转换为字符串。