2016-07-26 139 views
1

我有以下列表:IndexError:字符串索引超出范围巨蟒

url_sims1=[('http://bp.velocityfrequentflyer.com/', 
    [(2, 0.90452874), 
    (1, 0.83522302), 
    (4, 0.77591574), 
    (0, 0.72705799), 
    (3, 0.52282226)]), 
('http://cartrawler.virginaustralia.com/', 
    [(3, 0.79298556), 
    (1, 0.78112978), 
    (2, 0.76006395), 
    (0, 0.58570701), 
    (4, 0.40093967)]), 
('https://cartrawler.virginaustralia.com/book', 
    [(2, 0.9549554), 
    (1, 0.71705657), 
    (0, 0.58731651), 
    (3, 0.43987277), 
    (4, 0.38266104)]), 
('https://fly.virginaustralia.com/SSW2010/VAVA/webqtrip.html', 
    [(2, 0.96805269), 
    (4, 0.68034023), 
    (1, 0.66391909), 
    (0, 0.64251828), 
    (3, 0.50730866)]), 
('http://www.magicmillions.com.au/', 
    [(2, 0.84748113), 
    (4, 0.8338449), 
    (1, 0.61795002), 
    (0, 0.60271078), 
    (3, 0.20899911)])] 

我想用以下字符串替换此顺序

(2,...) 
(1,...) 
(4,...) 
(0,...) 
(3,...) 

:类别= [“艺术与娱乐” ,'激情点','积极的生活方式','消费习惯','旅行精明']。

for i in xrange(0, len(unique_url)): 
    for j in xrange(0, len(sims1)): 
     for k in xrange(0,len(categories)): 
      url_sims1[i][j][k][1]+=categories[k] 

但是我正在此错误:IndexError:因此,例如,“2”将被[2]

我已经写以下代码的类别替换字符串索引超出范围

unique_url=['http://bp.velocityfrequentflyer.com/', 
'http://cartrawler.virginaustralia.com/', 
'https://cartrawler.virginaustralia.com/book', 
'https://fly.virginaustralia.com/SSW2010/VAVA/webqtrip.html', 
'http://www.magicmillions.com.au/'] 

sims1=[[(2, 0.90452874),(1, 0.83522302),(4, 0.77591574),(0, 0.72705799),(3, 0.52282226)], 
[(3, 0.79298556),(1, 0.78112978),(2, 0.76006395),(0, 0.58570701),(4, 0.40093967)], 
[(2, 0.9549554),(1, 0.71705657),(0, 0.58731651),(3, 0.43987277),(4, 0.38266104)], 
[(2, 0.96805269),(4, 0.68034023),(1, 0.66391909),(0, 0.64251828),(3, 0.50730866)], 
[(2, 0.84748113),(4, 0.8338449),(1, 0.61795002),(0, 0.60271078),(3, 0.20899911)]] 

回答

1

既然你有url_sims1categories,然后尝试:

In [4]: [(url, [(categories[i], x) for i,x in lst]) for url,lst in url_sims1] 
Out[4]: 
[('http://bp.velocityfrequentflyer.com/', 
    [('active lifestyle', 0.9045), 
    ('points of passion', 0.8352), 
    ('travel savvy', 0.7759), 
    ('arts and entertainment', 0.7271), 
    ('consumer habits', 0.5228)]), 
('http://cartrawler.virginaustralia.com/', 
    [('consumer habits', 0.793), 
    ('points of passion', 0.7811), 
    ('active lifestyle', 0.7601), 
    ('arts and entertainment', 0.5857), 
    ('travel savvy', 0.4009)]), 
('https://cartrawler.virginaustralia.com/book', 
    [('active lifestyle', 0.955), 
    ('points of passion', 0.7171), 
    ('arts and entertainment', 0.5873), 
    ('consumer habits', 0.4399), 
    ('travel savvy', 0.3827)]), 
('https://fly.virginaustralia.com/SSW2010/VAVA/webqtrip.html', 
    [('active lifestyle', 0.9681), 
    ('travel savvy', 0.6803), 
    ('points of passion', 0.6639), 
    ('arts and entertainment', 0.6425), 
    ('consumer habits', 0.5073)]), 
('http://www.magicmillions.com.au/', 
    [('active lifestyle', 0.8475), 
    ('travel savvy', 0.8338), 
    ('points of passion', 0.618), 
    ('arts and entertainment', 0.6027), 
    ('consumer habits', 0.209)])] 

或者,如果你的出发点是unique_urlsims1,然后尝试:

[(url, [(categories[i], x) for i,x in lst]) for url,lst in zip(unique_url, sims1)] 
+1

那辉煌。非常感谢! – Technologic27

相关问题