出于个人兴趣,我刚刚开始学习使用Python编程,我正在参加一个在线训练营。我应该解决一些练习,我很快就找到了第一个困难。所以,我有这个列表:
chaos =["old price: 40", "new price: 21", "old price: 29", "old price: 50", "new price: 101"]我想在变量l中插入列表"chaos“,以便在冒号上拆分它,所以我键入:
l = chaos.split(":")
print(l)以及错误消息,如下所示:
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)错误:
AttributeError: 'list' object has no attribute 'split'在看了其他的例子和教程后,我写了又重写了它,但我真的不知道我做错了什么。有人能帮帮我吗?
发布于 2020-03-27 01:22:51
kederrac的答案是正确的。或者,您可以像这样使用列表理解:
l = [value for entry in chaos for value in entry.split(':')]它给出了输出:
['old price', ' 40', 'new price', ' 21', 'old price', ' 29', 'old price', ' 50', 'new price', ' 101']查看错误的实际原因,该消息确切地解释了所发生的事情。list对象(在本例中为chaos )无权访问split方法。这是字符串的保留方法。
此外,如果您希望保留拆分后的元素列表,则可以按照boechat107的建议将理解简化为以下内容。
l = [entry.split(':') for entry in chaos]这将导致:
[['old price', ' 40'], ['new price', ' 21'], ['old price', ' 29'], ['old price', ' 50'], ['new price', ' 101']]发布于 2020-03-27 01:10:24
您必须拆分列表chaos中的每个元素,您可以使用for循环:
l = []
for c in chaos:
l.extend(c.split(':'))
l输出:
['old price',
' 40',
'new price',
' 21',
'old price',
' 29',
'old price',
' 50',
'new price',
' 101']您可以阅读有关str.split here的更多信息
发布于 2020-03-27 04:49:26
split()是一个独占的字符串方法。测试命令type(chaos),您将对其进行检查。
要解决您的问题,正如上面的一些答案和注释所述,您需要迭代chaos列表的元素。
您可以改用列表压缩[element.split(":") for element in chao]或for循环:
l = []
for element in chaos:
l.append(element.split(":"))https://stackoverflow.com/questions/60872376
复制相似问题