【发布时间】:2019-11-15 23:54:44
【问题描述】:
我正在尝试从列表中删除一个元素,但只能使用 range 函数和 append 方法(作业问题)。当索引元素位置不等于位置参数时,我的“for循环”工作正常。但是,我似乎无法让我的 if 语句正常工作到所需的输出。任何帮助将不胜感激。
这是我的代码:
def length(my_list):
result = 0
for char in my_list:
result += 1
return result
def remove(my_list, position):
new_list2 = [] # Create a new list
length2 = length(my_list) # Calls upon the length function
if position < 0:
new_list2.append(my_list[position])
for r in range(length2):
if r != position:
new_list2.append(my_list[r])
if position > length2:
(my_list)
return new_list2
str_list5 = ['f','i','r','e']
new_list = remove(str_list5, 2)
print(new_list)
new_list = remove(str_list5, -1)
print(new_list)
new_list = remove(str_list5, 10)
print(new_list)
我在特定位置 -1 和 10 的输出应该是:
['i','r','e']
['f','i','r']
【问题讨论】:
-
您是否有理由编写自己的
length()函数而不是仅使用内置的len()? -
您希望
(my_list)做什么? -
您能解释一下为什么您期望
-1和10获得这些结果吗?r != position将始终为真,因此它将附加所有列表元素。 -
为什么
position = -1会产生与position = 0相同的结果? -
我说“请编辑问题”。重要细节不应出现在 cmets 中。