相关疑难解决方法(0)

为什么bool是int的子类?

当通过python-memcached在memcached中存储bool时,我注意到它以整数形式返回.检查库的代码向我显示有一个地方isinstance(val, int)被检查以将值标记为整数.

所以我在python shell中测试了它并注意到以下内容:

>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Run Code Online (Sandbox Code Playgroud)

但为什么究竟是bool一个子类int呢?

它有点意义,因为布尔值基本上是一个int,它可以只取两个值,但它需要比实际整数少得多的操作/空间(没有算术,只有一点存储空间)....

python boolean

79
推荐指数
2
解决办法
1万
查看次数

Python Bool和int比较以及带有布尔值的列表索引

使用布尔值对列表进行索引工作正常.虽然索引应该是整数.

以下是我在控制台中尝试的内容:

>>> l = [1,2,3,4,5,6]
>>> 
>>> l[False]
1
>>> l[True]
2
>>> l[False + True]
2
>>> l[False + 2*True]
3
>>> 
>>> l['0']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> type(True)
<type 'bool'>
Run Code Online (Sandbox Code Playgroud)

当我尝试l['0']打印错误时,指数中预期的int类型,这是显而易见的.然后,即使是类型'True''False'存在Bool,名单上的索引工作正常,并自动将其转换成int类型和执行操作.

请解释内部发生的事情.我是第一次发帖,所以请原谅我有任何错误.

python indexing boolean list

14
推荐指数
1
解决办法
2141
查看次数

标签 统计

boolean ×2

python ×2

indexing ×1

list ×1