解压内部字符串并处理

2024-04-18 04:57:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想拆分一个内部字符串以获取每个项,字符串是一个[()]结构,要处理的对象可以是这样的:

[(u'|name1|name2|name3|123|124|065|',)]

或者

[(u'|name1|',)]

或者

[(u'')]

甚至

false

要从字符串中获取项目,我只需要:

mystring.split('|')

但我认为我的最终方法很难看,而且容易出错:

mylist[0][0].split('|')

我怎样才能得到一个项目清单在一个干净和Python的方式?你知道吗


Tags: 项目对象方法字符串false方式结构split
3条回答

先做些检查。你知道吗

如果字符串可以嵌套在非恒定深度,只需将提取包在循环中,直到它成为basestring的实例。你知道吗

def split(container):
    if not container:
        return []

    return container[0][0].split('|')

我认为你的方法是正确的。你知道吗

但是split(“|”)结果的第一个和最后一个元素呢?。它们是空的,因为字符串以“|”开头和结尾。你知道吗

你可以用列表理解。你知道吗

[name for name in mylist[0][0].split('|') if name]

或在以下情况之前对字符串进行条带化:

   mylist[0][0].strip('|').split('|')

我同意你已经尽力做到最好了,但如果你只是想换一种(同等的)方式去做

from operator import itemgetter
f = itemgetter(0)
f(f(mylist)).split('|')

相关问题 更多 >