我有一个名为pop_item()的函数,我试图让它像pop()一样使用list类,我该怎么做,这是我的代码: def empty(lst): return lst == []
def pop_item(lst):
lst = lst[::-1]
new_lst = []
for i in lst:
if i != lst[-1]:
new_lst += [i]
lst = new_lst
return lst
def main():
todo = [1,2,3,4]
print(todo) #prints [1,2,3,4] as expected
print('\n' + 75 * '_' + '\n')
print(pop_item(todo)) #pop the item off
print(todo) #output should then be [1,2,3]
if __name__ == '__main__':
main()
注意:我不允许使用任何内置函数,例如len(),index,del()等。
答案 0 :(得分:0)
以下是一些不使用def pop_item(lst):
lst[:] = lst[:-1]
函数的列表中弹出项目的变体,只有切片和&列表理解
使用切片和放大器弹出最后一项切片任务:
def pop_item(lst):
lst[:] = [x for x in lst if x!=lst[-1]]
通过重建列表&来弹出一个有价值的项目(最后一个但可以是参数)切片分配
def pop_item(lst,item_position):
lst[:] = [x for i,x in enumerate(lst) if i!=item_position]
(如果它们具有相同的值,则可以弹出列表中的其他项目)
通过在列表中指定项目位置/索引:
fill