[英]How to split a list with only one item which is a complex string?
我正在處理一個xml文檔,輸出是列長1的列表,列的唯一節點是這種形式。
[['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']
]
我需要將node [0]的字符串分成這種形式的子列表:
[date, title, ['a','b','...'],[keyword1,keywork2,...,keywordN]].
我一直在努力,並嘗試了不同的方法。 由於原始列表的長度為1,因此我可以將其拆分。 我收到“超出范圍”錯誤。 我試圖拆分字符串,但是找不到任何方法,如果我使用逗號作為分隔符,則新創建的列表的長度為35,因為每個單詞都被計為一個列表項。 每個子列表代表一個出版物,我需要訪問每個項目才能創建圖形數據庫。 有人可以幫我嗎? 提前謝謝了。
鑒於:
>>> 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']]
]
這樣可以輕松解析列表內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.