如何将我的列表转换为字符串?
Posted
技术标签:
【中文标题】如何将我的列表转换为字符串?【英文标题】:How do I convert my list into string? 【发布时间】:2016-06-24 00:08:34 【问题描述】:我做了什么:
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: Can't convert 'list' object to str implicitly' 。我已经尝试了我所知道的一切,但我不知道该怎么做才能克服这个问题。 我使用这段代码的目的是通过计算文件中有多少 T1、T2、T3、W1、W2.. 并将它们乘以它们的价格来找出筹集了多少钱。
【问题讨论】:
Converting a list to a string的可能重复 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误和在问题本身中重现它所需的最短代码。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable Example。请包括示例输入、预期输出以及任何错误或回溯的全文。 也有可能是 OP 试图获取每天的长度,这将在 ***.com/questions/518021/… 下进行介绍 【参考方案1】:问题在于以
开头的3行countW = money.count (wednesday_tickets)
count
方法需要一个字符串,而不是字符串列表。您似乎想要计数的总数,每种票类型都有一个计数。您可以将该行替换为
countW = sum(money.count(ticket) for ticket in wednesday_tickets)
接下来的两行也是如此。这不是最有效的方法,因为它总共需要对数据进行 9 次传递,但如果这真的是关于高中戏剧之类的门票,那么如果效率是这么大的问题,我会感到惊讶。
此外,您的最后一个打印语句将不起作用,因为您不能直接组合字符串和数字。相反,使用
print("The total money raised for charity is £", money_raised)
然后让 print 函数帮你把数字转换成字符串。
【讨论】:
以上是关于如何将我的列表转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章