如何将仅包含一个复杂字符串的列表分割?

2024-04-24 00:22:33 发布

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

我正在处理一个xml文档,输出的是legth1的列表,它的唯一节点是这种形式。你知道吗

[['2007-12-18'],
 ['AAAA'],
 ['abc', 'def', 'ghi', 'jkl'],

 ['Objetos de Aprendizagem', u'Personaliza\\xe7\\xe3o',
   u'Perfil do Usu\\xe1rio', u'Padr\\xf5es de Metadados',
   u'Vers\\xf5es de Objetos de Aprendizagem',
   'Agrupamento de Objetos Similares'],

 ['2007-12-18'],

 [u'LOCPN: CADEIA DE PRODU\\xc7\\xc3O'],

 [u'Maria de F\\xe1tima', 'ZZZ', 'Albert Einstein',
   'James Clerk Maxwell', u'Jos\\xe9 da Silva',
   'DDD', 'R M. C. A'],

 ['Objetos de Aprendizagem', 'Modelo de Processo',
   'Redes de Petri Colorida', u'Especifica\\xe7\\xe3o formal'],

 ['2007-12-18'],

 [u'COMPUTA\\xc7\\xc3O M\\xd3VEL E UB\\xcdQUA  GRADUA\\xc7\\xc3O DE REFER\\xcaNCIA'],

 ['JB Cardoso', 'Franz Ferdinand', 'Nick Nolte',
   u'S\\xe9rgio Madruga', u'D\\xe9bora JKLJ'],

 [u'Computa\\xe7\\xe3o M\\xf3vel e Ub\\xedqua',
   u'Gradua\\xe7\\xe3o de Refer\\xeancia', u' Educa\\xe7\\xe3o Ub\\xedqua']
 ]

我需要将节点[0]的字符串拆分为以下形式的子列表:

[date, title, ['a','b','...'],[keyword1,keywork2,...,keywordN]]. 

我一直在努力,尝试不同的方法。因为原始列表的长度是1,所以我可以拆分它。我得到“超出范围”的错误。我尝试过拆分字符串,但是找不到方法,如果我使用逗号作为分隔符,新创建的列表的长度为35,因为每个单词都算作一个列表项。每个子列表代表一个发布,我需要访问每个项才能创建一个图形数据库。有人能帮我吗?非常感谢。你知道吗


Tags: 字符串列表节点de形式ubxe7xc7
1条回答
网友
1楼 · 发布于 2024-04-24 00:22:33

给出:

>>> x = [
['2007-12-18'], ['AAAA'],
['abc', 'def', 'ghi', 'jkl'], 
['Objetos de Aprendizagem', u'Personaliza\\xe7\\xe3o', u'Perfil do Usu\\xe1rio',
u'Padr\\xf5es de Metadados', u'Vers\\xf5es de Objetos de Aprendizagem', 'Agrupamento de Objetos Similares'], 
['2007-12-18'],
[u'LOCPN: CADEIA DE PRODU\\xc7\\xc3O'],
[u'Maria de F\\xe1tima', 'ZZZ', 'Albert Einstein', 'James Clerk Maxwell',
u'Jos\\xe9 da Silva', 'DDD', 'R M. C. A'],
['Objetos de Aprendizagem', 'Modelo de Processo', 'Redes de Petri Colorida', 
u'Especifica\\xe7\\xe3o formal'], 
['2007-12-18'], 
[u'COMPUTA\\xc7\\xc3O M\\xd3VEL E UB\\xcdQUA  GRADUA\\xc7\\xc3O DE REFER\\xcaNCIA'],
['JB Cardoso', 'Franz Ferdinand', 'Nick Nolte', u'S\\xe9rgio Madruga', u'D\\xe9bora    JKLJ'],
[u'Computa\\xe7\\xe3o M\\xf3vel e Ub\\xedqua', u'Gradua\\xe7\\xe3o de Refer\\xeancia', u' Educa\\xe7\\xe3o Ub\\xedqua']
]

。。。以下列表将列表拆分为包含日期、标题和以下两个列表的子列表:

>>> [x[j:j+4] for j in range(0,len(x),4)]

(按照@eyquem的建议,通过使用range()中的增量来简化这个理解的原始版本)

。。。给予:

[
[['2007-12-18'], ['AAAA'], ['abc', 'def', 'ghi', 'jkl'], 
['Objetos de Aprendizagem', 'Personaliza\\xe7\\xe3o', 'Perfil do Usu\\xe1rio',
'Padr\\xf5es de Metadados', 'Vers\\xf5es de Objetos de Aprendizagem', 
'Agrupamento de Objetos Similares']], 
[['2007-12-18'], ['LOCPN: CADEIA DE PRODU\\xc7\\xc3O'], ['Maria de F\\xe1tima', 
'ZZZ','Albert Einstein', 'James Clerk Maxwell', 'Jos\\xe9 da Silva', 'DDD', 
'R M. C. A'],
['Objetos de Aprendizagem', 'Modelo de Processo', 'Redes de Petri Colorida',
'Especifica\\xe7\\xe3o formal']], 
[['2007-12-18'], ['COMPUTA\\xc7\\xc3O M\\xd3VEL E UB\\xcdQUA  GRADUA\\xc7\\xc3O DE REFER\\xcaNCIA'], 
['JB Cardoso', 'Franz Ferdinand', 'Nick Nolte', 'S\\xe9rgio Madruga', 
'D\\xe9bora JKLJ'],
['Computa\\xe7\\xe3o M\\xf3vel e Ub\\xedqua', 
'Gradua\\xe7\\xe3o de Refer\\xeancia', ' Educa\\xe7\\xe3o Ub\\xedqua']]
]

这使得解析列表内容变得很容易。你知道吗

相关问题 更多 >