我正在寻找Python中的列表功能。
我这样做:
abcd = [1, 2, 3, 4]
try:
item = list[5]
except:
item = 0
我怎样才能看起来像:
item = abcd.get(5, 0)
感谢您的帮助
答案 0 :(得分:3)
您无法向get
类添加list
方法,但可以使用以下函数:
def get(alist, index, default):
try: return alist[index]
except IndexError: return default
给出了用法示例:
abcd = [1, 2, 3, 4]
item = get(abcd, 5, 0)
或list
的子类:
class mylist(list):
def get(self, index, default):
try: return self[index]
except IndexError: return default
给出了用法示例:
abcd = mylist([1, 2, 3, 4])
item = abcd.get(5, 0)
答案 1 :(得分:1)
就个人而言,我不想在此操作中专门使用多行。因此,我会选择像item = len(abcd) > 5 and abcd[5] or 0
这样的东西。
关于此技术的非常重要注意事项是,您想要的元素(在这种情况下为abcd[5]
)不得求值为布尔False
值。如果是,则上述语句将被评估为0
,而不是列表中的实际(False)值(None
,()
,{}
等)。