2014-12-03 60 views
0

我不得不回答的问题是:添加一个列表的所有值到另一个

与签名

def expand_one_or(course_lists): 

这个函数的字符串course_lists的名单列表实现一个功能, 修改它,如下所示:

  • 它找到的第一个表(称之为lis)在course_lists其中"/"发生。
  • 然后找到lis(比如i)中第一个"/"的坐标。
  • 如果lis[i-1]lis[i+1]存在,并且都是课程,lis被替换course_lists有两个新的列表:等同于lis但名单 lis[i]lis[i+1]取出,并等同于lislis[i]lis[i-1]删除列表。
  • 否则,发生的所有情况是从lis中删除了lis[i]

我写了这个问题的代码是:

def get_course_details(course_description): 
    beg_1 = "<A Name=" 
    end_1 = "></A>" 
    for i in course_description: 
     course_desc1 = [course_description[i] for i in course_description] 
     course_desc2 = [course_description[i] for i in course_description] 
     course_desc1[i] = [i].replace('<a name=','<A Name=') 
     course_desc2[i] = course_description[i].replace('></a>','></A>') 
     x1 = course_desc1.find(beg_1) 
     y1 = course_desc2.find(end_1) 
     course_code = course_description[x1 + len(beg_1):y1] 
     course_code = course_description.replace('"','') 
     beg_2 = "Prerequisite:" 
     end_2 = "<br>" 
     x2 = course_description.find(beg_2) 
     y2_temp = course_description[x2:] 
     y2 = y2_temp.replace("<BR>", "<br>").find(end_2) 
     prerequisites = y2_temp[:y2 + 1]  
     course_details = [] 
     course_details.extend([course_code, prerequisites]) 
    return course_details 

不过,我不断收到错误

list indices must be integers, not str 

我不知道如何解决这个问题。

回答

0

course_description是字符串列表:

替换此:

for i in course_description: 

到:

for i in range(len(course_description)): 

检查这个演示,那么你将解决你自己的吧:

>>> a = ['a','b','c','d'] 
>>> for i in a: 
...  print a[i]   # i is the element of a not the index 
... 
Traceback (most recent call last): 
File "<stdin>", line 2, in <module> 
TypeError: list indices must be integers, not str 
>>> for i in a: 
...  print i 
... 
a 
b 
c 
d 
>>> for i in range(len(a)):  # i in an integer from 0 to len(a) 
...  print a[i] 
... 
a 
b 
c 
d 
>>> for i,x in enumerate(a):  # enumerate access index and object both in tuple 
...  print i,x 
... 
0 a 
1 b 
2 c 
3 d 
+0

不,pythonic方式将不会试着用'i'来索引,而是直接使用'i' * *。或者使用'enumerate()'来获取索引和对象。 – 2014-12-03 17:24:42

+0

此外,代码中还有许多其他问题,一旦解决了这个特定的异常,就会崩溃。 – 2014-12-03 17:25:29

+0

等待代码还有什么问题? – 2014-12-03 17:25:29

相关问题