繁体   English   中英

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

[英]Pythonic way to find integer in list of strings

我有一个数组如下:

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

而且我要

h = 1
str(h) in hour

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

一个好的经验法则是,数据的类型和结构应该反映您所考虑的模型。 因此,如果您的模型是小时数是 1..24 或其他范围内的整数,那么您应该以这种方式对它们进行建模:

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

然后是这样的:

h in hours 

变得干净而明显。

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。 因此,通过结合列表推导式,它允许我们快速检查是否存在我们关心的值。 如果有列表,则意味着列表推导式找到了我们关心的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM