我正在尝试在python中使用switch case来删除set中的元素,但是问题是switch h的每种情况都在运行
这是我在python 3中尝试过的
if __name__ == '__main__':
s = set([1,2,3,4,6,5])
d = 5
switcher = {'pop':s.pop(),
'remove':s.remove(5),
'discard':s.discard(4)}
switcher.get('remove', 'nothing')
print(s)
{2,3,6}
以退出代码0结束的过程
答案 0 :(得分:1)
Python没有switch
语句。那是一个命令。 set([])
语法也已过时。请改用{}
。
s = {1,2,3,4,6,5}
如果要延迟对表达式的求值,可以使用lambda
。
switcher = {'pop': lambda: s.pop(),
'remove': lambda: s.remove(5),
'discard': lambda: s.discard(4)}
switcher.get('remove', 'nothing')()
当您要评估它时,别忘了调用它。
但是有一种更通用的方法来定义带有名称的函数:类。
if __name__ == '__main__':
s = {1,2,3,4,6,5}
class Switcher:
def pop():
s.pop()
def remove():
s.remove(5)
def discard():
s.discard(4)
Switcher.remove()
print(s)
请注意,这些“方法”没有self
参数,因此您不需要实例。就像lambda dict一样,它只是一个具有功能的结构。