Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:是否有一个替代选项来替代“Python”:;除索引者外:“;要轻一点的吗?_Python_Python 3.x_Python 2.6 - Fatal编程技术网

Python:是否有一个替代选项来替代“Python”:;除索引者外:“;要轻一点的吗?

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][

如果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][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
注意,这里有一个问题:你不能假设没有得到任何回报就意味着没有 项,如果列表本身可能不包含任何值。看起来很明显,但这是很重要的 你必须记住

您可以轻松地扩展此函数以接受多个索引