我有一个这样的字符串:
'|动作与冒险|戏剧|科幻小说|幻想|'
如何将其转换为元组或列表?
感谢。
答案 0 :(得分:8)
>>> s = '|Action and Adventure|Drama|Science-Fiction|Fantasy|'
>>>
>>> [item for item in s.split('|') if item.strip()]
['Action and Adventure', 'Drama', 'Science-Fiction', 'Fantasy']
>>>
如果你想要一个元组,那么:
>>> tuple(item for item in s.split('|') if item.strip())
('Action and Adventure', 'Drama', 'Science-Fiction', 'Fantasy')
>>>
答案 1 :(得分:1)
您想要str.split()
:
>>> s = '|Action and Adventure|Drama|Science-Fiction|Fantasy|'
>>> s.split('|')
['', 'Action and Adventure', 'Drama', 'Science-Fiction', 'Fantasy', '']
答案 2 :(得分:1)
如果您想将字符串拆分为您使用的|
字符:
myStr.split('|')
如果你还想要删除所有零长度元素(比如从末尾那些元素)你:
def myFilter(el): return len(el) > 0
filter(myFilter, myStr.split('|'))
答案 3 :(得分:1)
<强>条强> 'string'.strip(' |')
>>> heading = '|Action and Adventure|Drama|Science-Fiction|Fantasy|'
>>> tuple(heading.strip('|').split('|'))
('Action and Adventure', 'Drama', 'Science-Fiction', 'Fantasy')
<强>切片强> '字符串'[1:-1]
>>> heading = '|Action and Adventure|Drama|Science-Fiction|Fantasy|'
>>> tuple(heading[1:-1].split('|'))
('Action and Adventure', 'Drama', 'Science-Fiction', 'Fantasy')
对于列表,请删除元组()电话。
答案 4 :(得分:1)
strip()
摆脱了前导和尾随的字符,split()
将余数分开:
>>> s.strip('|').split('|')
['Action and Adventure', 'Drama', 'Science-Fiction', 'Fantasy']
答案 5 :(得分:0)
seq = '|Action and Adventure|Drama|Science-Fiction|Fantasy|'.split('|')
seq = tuple(seq)
如果要删除空项目,请通过filter(None, seq)
传递输出。如果您始终假设外部|
,则只需使用seq[1:-1]
切片。