将字符串转换为元组

时间:2010-10-13 04:24:07

标签: python

我有一个这样的字符串:

'|动作与冒险|戏剧|科幻小说|幻想|'

如何将其转换为元组或列表?

感谢。

6 个答案:

答案 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]切片。