0

标题太可怕了。这就是我的意思。我正在使用 Wolfram|Alpha 的 API。在解析它时,我得到了这些可怕的字符串,就像这样(通过查询“蜘蛛侠”):

“年 | 标题 | 中等 1962 | 神奇幻想 #15 | 漫画书 1967 | 蜘蛛侠 | 动画 > 1977 | 超凡蜘蛛侠 | 电视 1978 | Questprobe #2 蜘蛛侠 | 电子游戏 2002 > | 蜘蛛侠 |电影”

这实际上是应该是这样的列表的字符串表示形式():

[年份、标题、媒介]

[1962,惊人的幻想 #15,漫画书]

[1967,蜘蛛侠,电子游戏]

[2002,蜘蛛侠,电影]

我可以轻松地将其拆分为一个大列表……但我想不出一种简单的方法将它们按应有的方式放入列表中(如上所示)。除了转换为大列表、解析列表、通过创建一个新列表将它们分成列表列表之外的任何建议我遍历的每第三个项目......?

我的想法(很长的路要走):

listA = list()
listA = textRepresentation.split("|")
listB = list()
listC = list()
i = 1
for item in listA:
  if(i == 3):
    listB.append(listC)
    i = 1
  else:
    listC.append(item)
    i++
4

1 回答 1

2
import re
zip(*[(i.strip() for i in re.split('(\d{4})|\||>', text) if i and i.strip())]*3)

出去:

[('year', 'title', 'medium'),
 ('1962', 'Amazing Fantasy #15', 'comic book'),
 ('1967', 'Spider-Man', 'animation'),
 ('1977', 'The Amazing Spider-Man', 'television'),
 ('1978', 'Questprobe #2 Spider-Man', 'video game'),
 ('2002', 'Spider-Man', 'movie')]
于 2013-03-19T21:36:23.033 回答