Python 将一个列表的所有值添加到另一个列表

Python 将一个列表的所有值添加到另一个列表,python,Python,我必须回答的问题是: 使用签名实现函数 def expand_one_or(course_lists): 此函数获取字符串列表,以及 修改如下: 它在发生/的课程列表中查找第一个列表,称之为lis。 然后它会找到第一个/第二个的坐标,比如i。 如果lis[i-1]和lis[i+1]存在并且都是课程,则课程_列表中的lis将替换为两个新列表:一个与lis相同但具有 lis[i]和lis[i+1]已删除,列表与lis相同,但具有 lis[i]和lis[i-1]已删除。 否则,将从lis中删除lis

我必须回答的问题是:

使用签名实现函数

def expand_one_or(course_lists):
此函数获取字符串列表,以及 修改如下:

它在发生/的课程列表中查找第一个列表,称之为lis。 然后它会找到第一个/第二个的坐标,比如i。 如果lis[i-1]和lis[i+1]存在并且都是课程,则课程_列表中的lis将替换为两个新列表:一个与lis相同但具有 lis[i]和lis[i+1]已删除,列表与lis相同,但具有 lis[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
我不知道如何解决这个问题。

您的课程描述是一个字符串列表:

替换此项:

for i in 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

不,python的方法是不尝试使用i进行索引,而是直接使用i。或者使用enumerate同时获取索引和对象。此外,代码中还有许多其他问题,一旦这个特定的异常得到解决,这些问题就会迎刃而解。我不是说python方法,我只是建议他列出错误的原因raised@beginner_coder:如果您用此答案中的内容替换课程中的所有for i描述,您将消除索引错误。但是,新的问题会在以后变得明显。谢谢你的帮助,我想我得到了错误,因为我之前实现的函数只提供了一个具有一个巨大值的列表,如['123456789',,我试图用2替换1。
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