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

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 函数帮你把数字转换成字符串。

【讨论】:

以上是关于如何将我的列表转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的十六进制字符串转换为数字? [复制]

将整数列表转换为字符串

在列表中使用iconv?

尝试从 Excel 2013 批量导入到 TFS 时,如何将我的平面列表转换为树列表?

为啥扩展语法会将我的字符串转换为数组?

为啥 `fetch` 将我的 JSON 字符串转换为查询字符串?副作用? [复制]