【问题标题】:Python: How to tell if an element in a list contains a certain number?Python:如何判断列表中的元素是否包含某个数字?
【发布时间】:2018-08-10 15:12:37
【问题描述】:

例如,如果我输入:

li=[33];
3 in li

我明白了:

False

如果我检查 33 是​​否存在,我当然会得到“真”。 如何正确检查列表元素中是否存在数字?

【问题讨论】:

  • 你用什么编程语言?
  • @KamilKiełczewski Python 如标题所示。
  • 哦,是的,对不起,我错过了这些信息。您也可以在问题中添加 python TAG
  • 谢谢,添加了python标签

标签: python python-3.x list boolean


【解决方案1】:

一个非常简单的方法是这个:

li = [33,44,55]
['3' in str(x) for x in li]

这给了

[True, False, False]

通过使用列表推导,我们遍历li 的元素,将值转换为str。然后检查字符串中是否有“3”(或您想要的任何值)。 此操作的结果是li 的长度列表,其值为TrueFalse

这也适用于 n 位数,即

['31' in str(x) for x in [1314]]

也返回 true。

这里我们隐式假设li 的所有元素都可以转换为字符串。

【讨论】:

  • 我不知道有什么不能转换为str
  • @Ev.Kounis 是的,这似乎是真的。我不确定是否可能存在一些不正确的特殊情况。
【解决方案2】:

这是一个比较的函数式方法:

lst = [5, 1, 23, 6, 33, 31, 15]

res = list(map(lambda x: '3' in x, map(str, lst)))

# [False, False, True, False, True, True, False]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多