【发布时间】:2012-09-25 03:49:15
【问题描述】:
使用布尔值对列表进行索引可以正常工作。 虽然索引应该是一个整数。
以下是我在控制台中尝试过的:
>>> 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'>
当我尝试l['0'] 时,它会打印出索引中预期的 int 类型的错误,这很明显。
然后,即使'True' 和'False' 的类型是Bool,对列表的索引也可以正常工作并自动将其转换为int 类型并执行操作。
请解释内部发生的情况。 我是第一次发问题,如有错误请见谅。
【问题讨论】:
标签: python list indexing boolean