在python中使用默认值执行list [0]的最佳方法是什么?

时间:2010-06-29 16:07:45

标签: python

我正在寻找Python中的列表功能。

我这样做:

abcd = [1, 2, 3, 4]
try:
    item = list[5]
except:
    item = 0

我怎样才能看起来像:

item = abcd.get(5, 0)

感谢您的帮助

2 个答案:

答案 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(){}等)。