下面是我到目前为止掌握的代码:
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()中编写代码以移除槽pos中的项,将项移到它之外以缩小差距,并在最后一个时隙中不保留值。
对我该从哪里开始有什么想法?
发布于 2018-04-11 16:57:45
在remove()中编写代码以移除槽pos中的项,将项移到它之外以缩小差距,并在最后一个时隙中不保留值。
可以使用pop
方法list
移除项,然后将None
追加到列表中。
def remove(lst: list, pos: int):
lst.pop(pos)
lst.append(None)
发布于 2018-04-11 16:51:19
给定一个list lst
,pop(i)
方法将i
‘第四个索引中的项从lst
中删除。
def remove(lst: list, pos: int):
lst.pop(pos)
我还注意到,在您的测试中,您希望在删除一个项时,None
会添加到列表的末尾。事实并非如此。None
不应该是字符串列表中的项,如果从列表中删除一个项,则该项已经消失,但其余的项保持不变,没有添加任何其他项。
如果您想这样做,只需将lst.append(None)
添加到remove()
函数的最后一行。
发布于 2018-04-11 17:02:09
只要使用基本概念,我们就可以使用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
描述的内置方法就更清楚了。
https://stackoverflow.com/questions/49780547
复制相似问题