我有这段代码。缩短if语句的序列
c = getch()
if c == "r":
return randrange(101, len(mylist) - 1)
if c == "u":
return 100
if c == "b":
return -2
if c == "w":
return -3
if c == "m":
return -4
if c == "d":
return -5
if c == "e":
return -6
if c == "k":
return -7
if c == "g":
return -8
if c == "p":
return -9
if c == "o":
right = center - 1
else:
left = center + 1
我可以使这段代码更加紧凑吗?你会如何写得更好?
谢谢
如果您不担心必须调用randrange和额外的开销,您也可以将randrange(101,len(list)-1)'作为字典的成员'' len即使当c!='r' – Kevin
@Kevin:Thta会导致每个访问与'r'获得相同的数字。在每次调用时创建字典都没有什么不同,但需要在函数中定义字典(与其他地方相反,比如在配置文件中,或者从某些其他输入以编程方式)。这也是没有必要的,会有点浪费。 – delnan