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