Pythonic方法在字符串列表中查找整数

时间:2016-09-12 13:37:40

标签: python arrays

我有一个数组如下:

hour = ['01','02','12']

我想要

h = 1
str(h) in hour

返回True。什么是最“Pythonic”的方式来做到这一点?我当然可以用{0}填充h,但有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

一个好的经验法则是数据的类型和结构应该反映您的模型。所以,如果你的模型是小时是1..24范围内的整数,或者其他什么,那么你应该这样建模:

hours = [ int(hr) for hr in hour ]

然后像:

h in hours 

变得干净而明显。

答案 1 :(得分:0)

if [i for i in hour if h == int(i)]:
    print("found it")

[i for i in hour if h == int(i)]是列表推导,基本上是指从可迭代对象生成列表。它查看hours这是一个可迭代的列表,并且一次检查该值是否与h相同。我们将其转换为int(i),因为我们正在比较整数,i是一个字符串。

在python中,当在if语句中使用时,空列表[]返回false。因此,通过组合列表理解,它允许我们快速检查是否存在我们关心的值。如果有一个列表,这意味着列表理解找到了我们关心的值。