这是我到目前为止的代码:
def remove(lst: list, pos: int):
pass
def test_remove():
lst = ['Turkey',
'Stuffing',
'Cranberry sauce',
'Green bean casserole',
'Sweet potato crunch',
'Pumpkin pie']
remove(lst, 2)
assert lst == ['Turkey',
'Stuffing',
'Green bean casserole',
'Sweet potato crunch',
'Pumpkin pie',
None]
lst = [5, 10, 15]
remove(lst, 0)
assert lst == [10, 15, None]
lst = [5]
remove(lst, 0)
assert lst == [None]
if __name__ == "__main__":
test_remove()
在remove()中编写代码以移除槽位置中的项目,将项目移出它以关闭间隙,并在最后一个槽中保留值None。
关于我应该从哪里开始的任何想法?
答案 0 :(得分:1)
根据列表lst
,pop(i)
方法会从i
中移除lst
'索引中的项目。
def remove(lst: list, pos: int):
lst.pop(pos)
我还注意到,在测试中,您希望在删除项目时,None
被添加到列表的末尾。不是这种情况。 None
不应该是字符串列表中的项目,如果从列表中删除某个项目,该项目就会消失,但其余项目保持不变,并且不会添加任何其他内容。
如果您确实想这样做,只需将lst.append(None)
添加到remove()
功能的最后一行。
答案 1 :(得分:1)
在remove()中编写代码以移除插槽pos中的项目,将项目移到它之外以关闭间隙,并在最后一个插槽中保留值None。
您可以使用pop
list
方法删除该项目,然后将None
添加到列表中。
def remove(lst: list, pos: int):
lst.pop(pos)
lst.append(None)
答案 2 :(得分:0)
只需使用基本概念,我们就可以使用for循环:
def remove(lst: list, pos: int):
for i in range(pos, len(lst)-1):
lst[i] = lst[i+1]
lst[-1] = None
return lst
和测试:
remove([1,2,3,4,5,6], 2)
#[1, 2, 4, 5, 6, None]
请注意,只需使用@galfisher
和@R Sahu
描述的内置方法即可。