python 2 : AttributeError: 'list' object has no attribute 'strip'

标签 python list split

我有一个关于列表的小问题。所以我有一个名为 l 的列表:

l = ['Facebook;Google+;MySpace', 'Apple;Android']

如您所见,我的列表中只有 2 个字符串。我想用 ';' 分隔列表 l 并将新的 5 个字符串放入名为 l1 的新列表中。

我该怎么做?

我也试过这样做:

l1 = l.strip().split(';')

但是 Python 给我一个错误:

AttributeError: 'list' object has no attribute 'strip'

如果“list”对象没有属性“strip”或“split”,我该如何拆分列表?

谢谢

最佳答案

strip()是字符串的一种方法,您在 list 上调用它,因此会出现错误。

>>> 'strip' in dir(str)
True
>>> 'strip' in dir(list)
False

做自己想做的事

>>> l = ['Facebook;Google+;MySpace', 'Apple;Android']
>>> l1 = [elem.strip().split(';') for elem in l]
>>> print l1
[['Facebook', 'Google+', 'MySpace'], ['Apple', 'Android']]

因为您希望元素位于单个列表(而不是列表的列表)中,所以您有两个选择。

  1. 创建一个空列表并向其添加元素。
  2. 展开列表。

首先,请遵循以下代码:

>>> l1 = []
>>> for elem in l:
        l1.extend(elem.strip().split(';'))  
>>> l1
['Facebook', 'Google+', 'MySpace', 'Apple', 'Android']

要执行第二个操作,请使用 itertools.chain

>>> l1 = [elem.strip().split(';') for elem in l]
>>> print l1
[['Facebook', 'Google+', 'MySpace'], ['Apple', 'Android']]
>>> from itertools import chain
>>> list(chain(*l1))
['Facebook', 'Google+', 'MySpace', 'Apple', 'Android']

关于 python 2 : AttributeError: 'list' object has no attribute 'strip' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751322/

相关文章:

string - 如何在 Haskell 中通过列表理解正确生成字符串列表?

python - 从字典创建变量?

python - 如何使用掩码仅替换 numpy 数组的零

python - 将字符串 'abcde' 拆分为具有单独元素的列表

java - -- OR - OR\s 的正则表达式

java - 分割逗号分隔的字符串(带有一些'\{[字符)

vba - 如何使用非统一分隔符分解文本?

python - 在 Django 中使用 Pylint 时禁用某些消息

python - 如何获取具有唯一属性的对象列表

python - 是否可以将 pandas 系列附加到列表中