Mic*_*ael 11 python split list
我的列表有一个小问题.所以我有一个名单l
:
l = ['Facebook;Google+;MySpace', 'Apple;Android']
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我的列表中只有2个字符串.我要分开我的名单l
由";" 并将我的新5个字符串放入一个名为的新列表中l1
.
我怎样才能做到这一点?
而且我也试过这样做:
l1 = l.strip().split(';')
Run Code Online (Sandbox Code Playgroud)
但Python给我一个错误:
AttributeError: 'list' object has no attribute 'strip'
Run Code Online (Sandbox Code Playgroud)
因此,如果'list'对象没有'strip'或'split'属性,我该如何拆分列表?
谢谢
Suk*_*lra 18
strip()
是一个字符串的方法,你在它上面调用它list
,因此错误.
>>> 'strip' in dir(str)
True
>>> 'strip' in dir(list)
False
Run Code Online (Sandbox Code Playgroud)
要做你想做的事,就这样做
>>> l = ['Facebook;Google+;MySpace', 'Apple;Android']
>>> l1 = [elem.strip().split(';') for elem in l]
>>> print l1
[['Facebook', 'Google+', 'MySpace'], ['Apple', 'Android']]
Run Code Online (Sandbox Code Playgroud)
因为,您希望元素位于单个列表中(而不是列表列表),您有两个选项.
要做第一个,请遵循以下代码:
>>> l1 = []
>>> for elem in l:
l1.extend(elem.strip().split(';'))
>>> l1
['Facebook', 'Google+', 'MySpace', 'Apple', 'Android']
Run Code Online (Sandbox Code Playgroud)
要做第二个,请使用 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']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
83532 次 |
最近记录: |