标题很糟糕。这就是我的意思。我正在使用Wolfram | Alpha的API。在解析它时,我得到了这些可怕的字符串,就像这样(通过查询“蜘蛛侠”):
“年|标题|媒体1962 |惊人的幻想#15 |漫画书1967 |蜘蛛侠|动画> 1977 |惊人的蜘蛛侠|电视1978 | Questprobe#2蜘蛛侠|视频游戏2002> |蜘蛛侠|电影“
这实际上是一个字符串表示应该是这样的列表():
[年份,职称,中等]
[1962,Amazing Fantasy#15,漫画书]
[1967,蜘蛛侠,电子游戏]
[2002,蜘蛛侠,电影]
我可以很容易地把它分成一个大的列表......但我想不出一个简单的方法让它们像它们应该的那样进入列表(如上所示)。除了转换为大型列表之外的任何建议,解析列表,通过创建一个新的列表将它们分成每个第3项我迭代的列表......?
我的想法(很长的路):
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++
答案 0 :(得分: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')]