请喜欢一些建议。我是编程新手,正在做一个分配任务,我需要在指定位置的列表中添加一些值。分配的参数是必须使用循环,并且不能使用除range()或append()以外的任何内置函数。
我得到的错误是,从底部开始的第4行说“ TypeError:只能将列表(而不是“ int”)连接到列表”,我不确定如何解决此问题。 任何建议将不胜感激!请注意-因为这是一项任务,我不是在寻找代码,而是在我要去哪里以及我要如何学习和理解它的过程中提供建议!
collection_of_projects.remove(
{'_id': ObjectId(id_of_team_member)})
答案 0 :(得分:2)
您遇到的问题是您无法将整数添加到列表中。您只能将两个类似列表的对象一起添加。
因此,new_list = [value] + my_list
用于特定情况。
通常,我会使用列表切片。例如:
original_list = [0,1,2,3,5,6,7]
value_to_insert = 4
position_to_insert = 4
new_list = original_list[:position_to_insert] + [value_to_insert] + original_list[position_to_insert:]
如果必须使用循环:
new_list = []
for i in range(length(my_list)):
new_list.append(my_list[i])
if i == insert_position:
new_list.append(my_list(value_to_insert))
return new_list
最后:
my_list = [1, 2, 3, 4, 5, 4, 1, 4, 6]
#function 1 - takes list as parameter and returns length
def length(my_list):
count = 0
for x in my_list:
count = count + 1
return count
#function 5 - returns a copy of the list with the value inserted at the specified pos
def insert_value(my_list, value, insert_position):
new_list = []
for i in range(length(my_list)):
new_list.append(my_list[i])
if i == insert_position:
new_list.append(value)
return new_list
print(insert_value(my_list, 11, 6))
答案 1 :(得分:0)
如您在问题中所说,您可以使用append()
,而不是new_list = new_list + value
,而应使用new_list.append(value)
编辑:这是不切片的解决方案:
def insert_value(my_list, value, insert_position):
new_list = []
if insert_position > length(my_list):
new_list = my_list
new_list.append(value)
elif insert_position < 0:
new_list = [value]
for i in range(length(my_list)):
new_list.append(my_list[i])
else:
for i in range(insert_position):
new_list.append(my_list[i])
new_list.append(value)
for i in range(length(my_list)-insert_position):
new_list.append(my_list[insert_position+i])
return new_list