2024-04-18 04:57:13 发布
网友
我想拆分一个内部字符串以获取每个项,字符串是一个[()]结构,要处理的对象可以是这样的:
[(u'|name1|name2|name3|123|124|065|',)]
或者
[(u'|name1|',)]
[(u'')]
甚至
false
要从字符串中获取项目,我只需要:
mystring.split('|')
但我认为我的最终方法很难看,而且容易出错:
mylist[0][0].split('|')
我怎样才能得到一个项目清单在一个干净和Python的方式?你知道吗
先做些检查。你知道吗
如果字符串可以嵌套在非恒定深度,只需将提取包在循环中,直到它成为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('|')
先做些检查。你知道吗
如果字符串可以嵌套在非恒定深度,只需将提取包在循环中,直到它成为basestring的实例。你知道吗
我认为你的方法是正确的。你知道吗
但是split(“|”)结果的第一个和最后一个元素呢?。它们是空的,因为字符串以“|”开头和结尾。你知道吗
你可以用列表理解。你知道吗
或在以下情况之前对字符串进行条带化:
我同意你已经尽力做到最好了,但如果你只是想换一种(同等的)方式去做
相关问题 更多 >
编程相关推荐