属性错误:对象没有split属性。

3

当我尝试分割时,出现了一个错误。

l =[u'this is friday', u'holiday begin']
split_l =l.split()
print(split_l)

错误信息是:
Traceback (most recent call last):
  File "C:\Users\spotify_track2.py", line 19, in <module>
    split_l =l.split()
AttributeError: 'list' object has no attribute 'split'

所以我不知道如何处理这种错误。


1
你想用 split() 做什么? - Shashank
显然,“处理这种错误”的最佳方法是避免尝试调用不存在的方法 xD。那么你到底想做什么?你期望list.split返回什么? - bruno desthuilliers
有没有办法打印出这样的内容?a = ['this', 'is', 'friday', 'holiday', 'begin'] @Shashank - user3849475
@brunodesthuilliers 这是我希望返回的结果 a = ['this','is','friday','holiday','begin']。 - user3849475
所以你已经得到了答案。只是出于好奇:如果执行 [1, 2, 3].split(),你会期望它返回什么? - bruno desthuilliers
2个回答

10

首先,不要将您的变量命名为list

其次,list没有split函数,它是str才有。

请查阅str.split的文档。

使用sep作为分隔符字符串,在字符串中返回单词列表

(强调我的)

所以你需要这样做:

l =[u'this is friday', u'holiday begin']
split_list =[i.split() for i in l]
print(split_list)

将输出

[[u'this', u'is', u'friday'], [u'holiday', u'begin']]

帖子评论编辑

为了获得你所期望的结果,你可以尝试:

>>> l =[u'this is friday', u'holiday begin']
>>> " ".join(l).split(" ")
[u'this', u'is', u'friday', u'holiday', u'begin']

或如下所述

>>> [j for i in split_list for j in i]
[u'this', u'is', u'friday', u'holiday', u'begin']

[j for i in split_list for j in i] - xnx
@xnx 为什么在 for 循环中需要重复两次使用 j? - user3849475
Bhargav Rao的回答应该是你所需要的全部内容。for循环的重复是为了将列表从[[u'this', u'is', u'friday'], [u'holiday', u'begin']]扁平化为[u'this', u'is', u'friday', u'holiday', u'begin'] - xnx
@user3849475 这被称为列表扁平化,就像xnx所提到的那样。 - Bhargav Rao

0

由于split()是一个字符串函数,我们只需要将列表对象转换为字符串,然后按照以下方式应用split:

`>>`I =[u'this is friday', u'holiday begin']
`>>`I=str(I)
`>>`split_I =I.split()
`>>`print(split_I)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接