Python:是否有一个替代选项来替代“Python”:;除索引者外:“;要轻一点的吗?
如果mysql没有输出Python:是否有一个替代选项来替代“Python”:;除索引者外:“;要轻一点的吗?,python,python-3.x,python-2.6,Python,Python 3.x,Python 2.6,如果mysql没有输出 if record[0][0]: 将返回一个错误 IndexError: tuple index out of range 我知道解决此问题的唯一解决方案是: try: if record[0][0]: # Do stuff except IndexError: pass 但这看起来像一个非常沉重的包装脚本 只是为了弄清楚 record[0][0] 没有数据。(无价值) 是否可以做一些更轻的事情,例如 if record[0][
if record[0][0]:
将返回一个错误
IndexError: tuple index out of range
我知道解决此问题的唯一解决方案是:
try:
if record[0][0]:
# Do stuff
except IndexError:
pass
但这看起来像一个非常沉重的包装脚本
只是为了弄清楚
record[0][0]
没有数据。(无价值)
是否可以做一些更轻的事情,例如
if record[0][0] = ""
?
更新:
这是我的MYSQL代码:
a = _mysql.escape_string(a)
db=b()
db.query("select * from b where a='" + a + "' limit 1")
result = db.store_result()
record = result.fetch_row()
更新:
结果表明,有效的方法是:
if record:
而不是
if record[0]:
或
在一般情况下,如果要检查列表中是否存在项,只需检查它是否存在。异常被认为是Pythonic代码。使用另一种结构进行访问检查可能可读性较差,并且会出现性能问题 然而,如果你真的对别的东西感兴趣。。这个怎么样
>>> if record[0]:
... field = record[0][0]
这是因为在if
语句中,空列表([]
)的计算结果为False
>>> record = [[]]
>>> if record[0]: # returns an empty list, e.g. []
... field = record[0][0] # is not executed
在一般情况下,如果要检查列表中是否存在项,只需检查它是否存在。异常被认为是Pythonic代码。使用另一种结构进行访问检查可能可读性较差,并且会出现性能问题 然而,如果你真的对别的东西感兴趣。。这个怎么样
>>> if record[0]:
... field = record[0][0]
这是因为在if
语句中,空列表([]
)的计算结果为False
>>> record = [[]]
>>> if record[0]: # returns an empty list, e.g. []
... field = record[0][0] # is not executed
在一般情况下,如果要检查列表中是否存在项,只需检查它是否存在。异常被认为是Pythonic代码。使用另一种结构进行访问检查可能可读性较差,并且会出现性能问题 然而,如果你真的对别的东西感兴趣。。这个怎么样
>>> if record[0]:
... field = record[0][0]
这是因为在if
语句中,空列表([]
)的计算结果为False
>>> record = [[]]
>>> if record[0]: # returns an empty list, e.g. []
... field = record[0][0] # is not executed
在一般情况下,如果要检查列表中是否存在项,只需检查它是否存在。异常被认为是Pythonic代码。使用另一种结构进行访问检查可能可读性较差,并且会出现性能问题 然而,如果你真的对别的东西感兴趣。。这个怎么样
>>> if record[0]:
... field = record[0][0]
这是因为在if
语句中,空列表([]
)的计算结果为False
>>> record = [[]]
>>> if record[0]: # returns an empty list, e.g. []
... field = record[0][0] # is not executed
在Python中,有一种方法可以从dict而不是列表中获取默认值。例如,在一篇格言中: x=mydict.get('key')#如果没有'key',x将为None (您还可以提供另一个默认值作为第二个arg to get()方法) 现在,在列表中使用类似的内容会很方便。从列表中获取项目 在某些方面与从dict中获取项目非常相似,但并不完全相同。python 做出了一个设计决策,不使用类似的列表方法 当然,你可以很容易地做出自己的决定。我有时在自己的库中使用函数 调用“getitem”,返回默认参数;但是它只查找列表的一个级别, 因为我觉得多个关卡是一个很好的例子,它可能值得使用 具有多个级别的异常。但是,对于一个级别,您可以执行以下操作:
def getitem(seq, index, default=None):
"""Get item from a `seq` at `index`, return default if index out of range."""
try : return seq[index]
except IndexError : return default
注意,这里有一个问题:你不能假设没有得到任何回报就意味着没有
项,如果列表本身可能不包含任何值。看起来很明显,但这是很重要的
你必须记住
您可以轻松地扩展此函数以接受多个索引并处理多个索引
列表的级别,但您可能会问:我如何知道在哪个级别有
索引器?在Python中,有一种方法可以从dict而不是列表中获取默认值。例如,在一篇格言中: x=mydict.get('key')#如果没有'key',x将为None (您还可以提供另一个默认值作为第二个arg to get()方法) 现在,在列表中使用类似的内容会很方便。从列表中获取项目 在某些方面与从dict中获取项目非常相似,但并不完全相同。python 做出了一个设计决策,不使用类似的列表方法 当然,你可以很容易地做出自己的决定。我有时在自己的库中使用函数 调用“getitem”,返回默认参数;但是它只查找列表的一个级别, 因为我觉得多个关卡是一个很好的例子,它可能值得使用 具有多个级别的异常。但是,对于一个级别,您可以执行以下操作:
def getitem(seq, index, default=None):
"""Get item from a `seq` at `index`, return default if index out of range."""
try : return seq[index]
except IndexError : return default
注意,这里有一个问题:你不能假设没有得到任何回报就意味着没有
项,如果列表本身可能不包含任何值。看起来很明显,但这是很重要的
你必须记住
您可以轻松地扩展此函数以接受多个索引并处理多个索引
列表的级别,但您可能会问:我如何知道在哪个级别有
索引器?在Python中,有一种方法可以从dict而不是列表中获取默认值。例如,在一篇格言中: x=mydict.get('key')#如果没有'key',x将为None (您还可以提供另一个默认值作为第二个arg to get()方法) 现在,在列表中使用类似的内容会很方便。从列表中获取项目 在某些方面与从dict中获取项目非常相似,但并不完全相同。python 做出了一个设计决策,不使用类似的列表方法 当然,你可以很容易地做出自己的决定。我有时在自己的库中使用函数 调用“getitem”,返回默认参数;但是它只查找列表的一个级别, 因为我觉得多个关卡是一个很好的例子,它可能值得使用 具有多个级别的异常。但是,对于一个级别,您可以执行以下操作:
def getitem(seq, index, default=None):
"""Get item from a `seq` at `index`, return default if index out of range."""
try : return seq[index]
except IndexError : return default
注意,这里有一个问题:你不能假设没有得到任何回报就意味着没有
项,如果列表本身可能不包含任何值。看起来很明显,但这是很重要的
你必须记住
您可以轻松地扩展此函数以接受多个索引