簡體   English   中英

如何檢查列表項是否位於另一個列表中的元組之間?

[英]How to check if list item sits between tuples in another list?

當另一個列表中的項目在數字上介於它們之間時,我試圖返回列表中的一對元組。 我瀏覽了該網站以尋求幫助,但我無法找到適合我/適用的解決方案。

首先考慮以下兩個列表:

my_list = [1.5, 1.2, 1.1]
min_max = [(1.1, 1.4), (1.0, 1.3), (1.6, 1.8)]

我需要my_list中的每個項目遍歷min_max列表中的每對元組,當它位於該范圍內時返回一對。 使用來自my_list的數據,它將返回:

(1.1, 1.4)
(1.0, 1.3)

請注意,雖然 1.2 和 1.1 都介於 (1.0, 1.3) 之間,但我只需要它返回一次。 進步:當使用lambda function 固定范圍時,我可以遍歷列表,我嘗試使用列表迭代擴展它,但我無法讓它工作

list_return = filter(lambda x: 1.1 <= x <= 1.5, my_list)
[i for i in my_list]
print (list_return)

我已經嘗試了各種變化,我開始懷疑我是否正確地接近這個?

似乎您一直在嘗試遍歷my_list ,但這更容易遍歷min_max並檢查my_list中的任何值是否在每對之間。 這對我有用。

result = [(a, b) for a, b in min_max if any(a <= item <= b for item in my_list)]
print(result)

我得到

[(1.1, 1.4), (1.0, 1.3)]

你可以做

my_list = [1.5, 1.2, 1.1]
min_max = [(1.1, 1.4), (1.0, 1.3), (1.6, 1.8)]
for i in[i for i in min_max if list(filter(lambda x: min(i) <= x <= max(i), my_list))]:
    print(i)

那將 output

(1.1, 1.4)
(1.0, 1.3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM