列表索引语法疑问:为何[1,2][False]的输出为1?
列表索引语法的原理解释
你理解的[1, 2] + [False]是列表拼接操作,+运算符会把两个列表的元素合并成一个新列表,所以输出[1, 2, False],这个逻辑没问题。
而[1, 2][False]是列表索引访问操作,拆解后逻辑很清晰:
- 首先
[1, 2]是一个已创建的列表对象 - 紧随其后的
[False]是索引取值操作,用于获取列表对应位置的元素 - 在Python中,布尔类型是整数类型的子类,
False在数值上等价于0,True等价于1
所以[1, 2][False]完全等价于[1, 2][0],而列表的索引从0开始计数,索引0对应的元素就是1,因此最终输出为1。
可以用另一个例子验证这个逻辑:
r = [1, 2][True] # Output: 2
这里True等价于1,取的是列表索引1的元素,结果就是2。
内容的提问来源于stack exchange,提问作者meallhour
相关产品推荐
相关产品推荐

