Python 比较字符串列表

问题描述 投票:0回答:1

想象我有字符串列表作为输入。

然后我有一个 JSON 对象,其中包含

n
字符串“rules”列表:

input = ['a', 'b', 'c']

rules.json

{
    "level_1": [ "a" ],
    "level_2": [ "a", "b" ],
    "level_3": [ "a", "b", "c"]
}

在这种情况下,

input
将“有资格成为”
level_3

但如果

input = ["a", "c"]
那就“只有资格”
level_1

是否有一种 Pythonic 方法可以实现此目的,而无需大量嵌套

for
循环和字符串比较?

仅供参考:

"a"
"b"
"c"
显然是占位符值,但在实际系统中,
"a"
的输入始终是
==
的规则值。
    

python
1个回答
0
投票

"a"

In [1]: o = {"level_1": [ "a" ], ...: "level_2": [ "a", "b" ], ...: "level_3": [ "a", "b", "c"]} In [2]: i = ['a', 'b', 'c'] In [3]: next(filter(lambda x: o[x]==i,o)) Out[3]: 'level_3'

 内置于 python 中。

根据函数为 true 的 iterable 元素构造一个迭代器。 iterable 可以是序列、支持迭代的容器或迭代器。如果 function 为 None,则假定恒等函数,即删除所有为 false 的 iterable 元素。

请注意,如果 function 不是 None,则 filter(function, iterable) 相当于生成器表达式 (item for item in iterable if function(item));如果 function 为 None,则相当于 (item for item in iterable if item)。

© www.soinside.com 2019 - 2024. All rights reserved.