首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法理解此列表的原因:‘AttributeError’对象没有'split‘属性

无法理解此列表的原因:‘AttributeError’对象没有'split‘属性
EN

Stack Overflow用户
提问于 2020-03-27 01:01:39
回答 3查看 162关注 0票数 1

出于个人兴趣,我刚刚开始学习使用Python编程,我正在参加一个在线训练营。我应该解决一些练习,我很快就找到了第一个困难。所以,我有这个列表:

代码语言:javascript
复制
chaos =["old price: 40", "new price: 21", "old price: 29", "old price: 50", "new price: 101"]

我想在变量l中插入列表"chaos“,以便在冒号上拆分它,所以我键入:

代码语言:javascript
复制
l = chaos.split(":")

print(l)

以及错误消息,如下所示:

代码语言:javascript
复制
AttributeError                            Traceback (most recent call last)
<ipython-input-12-31400247da2e> in <module>
      1 chaos =["old price: 40", "new price: 21", "old price: 29", "old price: 50", "new price: 101"]
      2 
----> 3 l = chaos.split(":")
      4 
      5 print(l)

错误:

代码语言:javascript
复制
AttributeError: 'list' object has no attribute 'split'

在看了其他的例子和教程后,我写了又重写了它,但我真的不知道我做错了什么。有人能帮帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-27 01:22:51

kederrac的答案是正确的。或者,您可以像这样使用列表理解:

代码语言:javascript
复制
l = [value for entry in chaos for value in entry.split(':')]

它给出了输出:

代码语言:javascript
复制
['old price', ' 40', 'new price', ' 21', 'old price', ' 29', 'old price', ' 50', 'new price', ' 101']

查看错误的实际原因,该消息确切地解释了所发生的事情。list对象(在本例中为chaos )无权访问split方法。这是字符串的保留方法。

此外,如果您希望保留拆分后的元素列表,则可以按照boechat107的建议将理解简化为以下内容。

代码语言:javascript
复制
l = [entry.split(':') for entry in chaos]

这将导致:

代码语言:javascript
复制
[['old price', ' 40'], ['new price', ' 21'], ['old price', ' 29'], ['old price', ' 50'], ['new price', ' 101']]
票数 1
EN

Stack Overflow用户

发布于 2020-03-27 01:10:24

您必须拆分列表chaos中的每个元素,您可以使用for循环:

代码语言:javascript
复制
l = []

for c in chaos:
    l.extend(c.split(':'))
l

输出:

代码语言:javascript
复制
['old price',
 ' 40',
 'new price',
 ' 21',
 'old price',
 ' 29',
 'old price',
 ' 50',
 'new price',
 ' 101']

您可以阅读有关str.split here的更多信息

票数 1
EN

Stack Overflow用户

发布于 2020-03-27 04:49:26

split()是一个独占的字符串方法。测试命令type(chaos),您将对其进行检查。

要解决您的问题,正如上面的一些答案和注释所述,您需要迭代chaos列表的元素。

您可以改用列表压缩[element.split(":") for element in chao]for循环:

代码语言:javascript
复制
l = []
for element in chaos:
    l.append(element.split(":"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60872376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档