Python 查找列表中介于哪个范围之间的数字
需要一些python帮助,我有一个列表:Python 查找列表中介于哪个范围之间的数字,python,Python,需要一些python帮助,我有一个列表: [[sql1, 1, 10], [sql2, 12, 16]...] 我想知道sql2中是否有15,请用python简单地告诉我 我已经试过了 您将不得不提供更多关于所需实现的细节,但这太有趣了,无法不回答 我的回答假设: 您需要子列表的开始字符串(index==0)列表,其: 第二和第三个元素包含a(包含)和b(排除)范围内的15 这是在Python3中实现的 >>> x = [['sql1', 1, 10], ['sql2', 12, 16]] >
[[sql1, 1, 10], [sql2, 12, 16]...]
我想知道sql2中是否有15,请用python简单地告诉我
我已经试过了 您将不得不提供更多关于所需实现的细节,但这太有趣了,无法不回答 我的回答假设:
index==0
)列表,其:15
'sql2'
和15
作为输入并返回布尔值:
>>> x = [['sql1', 1, 10], ['sql2', 12, 16]]
>>> check = 'sql2'
>>> n = 15
>>> any(a == check and n in range(*b) for a, *b in x)
True
首先,用最简单的方法来解决问题,然后再考虑用它来做一些通用的东西
test_data = [['sql', 1, 10],['sql2', 12, 16, 15]]
print(15 in test_data[1]) # True
我们甚至可以把它推广成一个函数
def in_data(data_sets, data, check_in):
for data_set in data_sets:
if data in data_set:
if check_in in data_set:
return True
return False
@抢劫ᵩ 指出了一个更优雅/紧凑的解决方案,使我们能够编写:
def in_data(data_sets, data, check_in):
return any(check_in in data_set for data_set in data_sets)
我已硬编码数据以满足问题要求,但 答案可以根据需要修改
my_list = [['sql1', 1, 10], ['sql2', 12, 16]]
for i in range(len(my_list)):
print(my_list[i])
if my_list[i][0] == 'sql1':
if '15' in my_list[i][0]:
print("found")
else:
print("not found")
也许你写的是最简单的方式;在您分享之前,您不能说15是列表中以
sql2
开头的两个整数之一,还是15在这两个整数之间?您确定sql1
和sql2
等的值不同吗?请显示您的代码并解释您遇到的困难它在Python 2.7中不起作用-OP没有说明version@volcano; 正确,因为没有说明版本,所以我选择了3。xit最好直接迭代我的_列表:对于我的_列表中的子列表:if sublist[0]…
@juanpa.arrivillaga;的确如此。谢谢你的提示。列表理解总是很有趣的!:)+1或,使用any()
内置:返回any(在数据集中检查数据集中的数据集)
@Robᵩ 我喜欢!谢谢你给我看这个。:)
my_list = [['sql1', 1, 10], ['sql2', 12, 16]]
for i in range(len(my_list)):
print(my_list[i])
if my_list[i][0] == 'sql1':
if '15' in my_list[i][0]:
print("found")
else:
print("not found")