【问题标题】:Why Python't any() function doesn't work for list of character checking? [duplicate]为什么 Python't any() 函数不适用于字符检查列表? [复制]
【发布时间】:2021-04-06 03:01:26
【问题描述】:

当我使用 int 时

a = [1, 2, 3]
b = [3, 1, 2]

print(all(a) in b)

结果是True。

但是,当我使用字符时

a = ["a", "b", "c"]
b = ["c", "b", "a"]

print(all(a) in b)

结果是False

为什么在这种情况下结果是False?

【问题讨论】:

  • all(a) in b 是all([1, 2, 3]) in b 这是True in b 这是1 in b 这是True。
  • FWIW,这里使用all 的正确方法是all(i in b for i in a),虽然效率很低。
  • 这不是链接帖子的重复,我不知道为什么它被关闭了。

标签: python function boolean


【解决方案1】:

all(a) 在这两种情况下都返回True,所以你基本上是在运行

print(True in [3, 1, 2])

和

print(True in ["c", "b", "a"])

True == 1 在 python 中返回 True,所以由于在整数 b 列表中存在值 1,True in b 为整数 b 列表返回 True。

由于True 不等于任何字符串,True in b 为字符串b 列表返回False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 2019-08-18
    • 2018-04-03
    相关资源
    最近更新 更多