我有一个数组如下:
hour = ['01','02','12']
我想要
h = 1
str(h) in hour
返回True
。什么是最“Pythonic”的方式来做到这一点?我当然可以用{0}填充h
,但有更好的方法吗?
答案 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。因此,通过组合列表理解,它允许我们快速检查是否存在我们关心的值。如果有一个列表,这意味着列表理解找到了我们关心的值。