Python:如何避免';列表分配索引超出范围';
尝试搜索,但找不到任何内容。我正在寻找最简单的替代品Python:如何避免';列表分配索引超出范围';,python,Python,尝试搜索,但找不到任何内容。我正在寻找最简单的替代品 if myList and len(myList)>4 用短一点的: myList = [1,2,3,4,5] if myList and len(myList)>4: print myList[4], len(myList) 自 做不到这一点。不太清楚被问到了什么,但我冒昧地猜测一下,这是正确的概念 try: myList[4] except IndexError: # handle it 基本
if myList and len(myList)>4
用短一点的:
myList = [1,2,3,4,5]
if myList and len(myList)>4:
print myList[4], len(myList)
自
做不到这一点。不太清楚被问到了什么,但我冒昧地猜测一下,这是正确的概念
try:
myList[4]
except IndexError:
# handle it
基本上,试着用索引4做你想做的事情。如果你做不到,而且这是因为一个
索引器
,如果你的如果len(myList)>4
失败了,就用你处理它的方式来处理它。我不太确定要问什么,但我冒昧地猜测这是正确的概念
try:
myList[4]
except IndexError:
# handle it
基本上,试着用索引4做你想做的事情。如果你不能,而且是因为一个索引器
,请按照你的如果len(myList)>4
失败时的处理方式来处理它。试试这个
>>> if len(myList)> 4 : print myList[4]
更新
试试这个
>>> if len(myList)> 4 : print myList[4]
更新
您可以尝试扩展内置类型
列表
并覆盖\uu getitem\uuu()
,以获得您想要的行为
class MyList(list):
def __getitem__(self, index):
try:
return super(MyList, self).__getitem__(index)
except IndexError:
return None
mylist = MyList([1,2,3,4,5])
print mylist[4] #prints 5
print mylist[6] is None #prints True
就个人而言,我支持亚当·斯密的建议。您可以尝试扩展内置类型
列表
并覆盖\uu getitem\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
class MyList(list):
def __getitem__(self, index):
try:
return super(MyList, self).__getitem__(index)
except IndexError:
return None
mylist = MyList([1,2,3,4,5])
print mylist[4] #prints 5
print mylist[6] is None #prints True
就我个人而言,我赞成亚当·斯密的建议。如果伦(myList)>4:
更短(只要myList
实际上是一个列表,就相当于)…通常你可以做如果伦(myList)>4
。如果您需要If myList
,很可能是因为您没有在此处显示其他内容。myList可能会以“无”的形式到达。我需要先检查…@Sputnix是否明确如果myList不是None,len(myList)>4:
坦白地说,我会先测试None
-ness,然后分别处理这种情况,而不仅仅是如果len(myList)如果不是,myList也会在空列表中出错,这在我的情况下非常有效。但是谢谢<代码>如果len(myList)>4:
更短(并且只要myList
实际上是一个列表,就相当于)…通常,如果len(myList)>4
,您可以执行。如果您需要If myList
,很可能是因为您没有在此处显示其他内容。myList可能会以“无”的形式到达。我需要先检查…@Sputnix是否明确如果myList不是None,len(myList)>4:
坦白地说,我会先测试None
-ness,然后分别处理这种情况,而不仅仅是如果len(myList)如果不是,myList也会在空列表中出错,这在我的情况下非常有效。但是谢谢!这个建议也不错。希望更短!这个建议也不错。希望更短!len(None)抛出TypeError:NoneType类型的对象没有len(),在“现实生活”中,无法预测myList是什么。谢谢!检查无需继续len()否则事情会很快变得一团糟您还应该使用isinstance(myList,list)
而不是type(myList)is list
来保留继承。len(None)抛出TypeError:type'NoneType'的对象没有len()。在“真实生活”中,无法预测myList是什么。谢谢!检查无需继续len()否则事情会很快变得一团糟您还应该使用isinstance(myList,list)
而不是type(myList)is list
来保留继承。我真的很喜欢您的!谢谢我真的很喜欢你的!谢谢