【问题标题】:Why x[False] and x[True] for python list work? [duplicate]为什么 python 列表的 x[False] 和 x[True] 有效? [复制]
【发布时间】:2019-02-09 22:19:12
【问题描述】:

如果我有x 作为项目列表,为什么x[True]x[False] 会修改列表的第一个或第二个元素?

请看下面的代码示例:

x = [1, 2]
x[True] = 'a'
x[False] = 'b'
print(x) # --> ['a', 'b']

请解释为什么这段代码有效?

【问题讨论】:

    标签: python list boolean


    【解决方案1】:

    由于 x 是list,因此传递的索引被转换为整数表示。 True 和 False 的整数表示分别为 1 和 0。结果,它导致列表中的第一个和第二个元素的修改。来自Python Data model documentation

    这些代表真值 False 和 True。两个对象 表示值 False 和 True 是唯一的布尔对象。 布尔类型是整数类型的子类型,布尔值 在几乎所有情况下,其行为分别类似于值 0 和 1, 例外是当转换为字符串时,字符串 分别返回“False”或“True”。

    除了带有导致字典有趣行为的列表的示例:

    x = {}
    x[True] = 'a'
    print(x) # --> {True: 'a'}
    x[1] = 'b' 
    print(x) # --> {True: 'b'} and not {True: 'a', 1: 'b'}
    

    【讨论】:

    • 请考虑将您的答案移至重复的问题。这是一个很好的答案,应该与其他答案一起列出。
    • 我们可以标记答案以便模组移动它以保持分数吗?有可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2016-03-21
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多