0

我想为以下情况找到最佳解决方案:
我有以下项目:哪些
item1包含test1test2
item2哪些包含test3,哪些包含test4
,哪些包含 ,以及
item3test5
superItemitem1item2item3

我应该使用哪些方法来获得以下结果;
我有一个变量check,其中包含test1
我想在result变量中接收item1...

换句话说:我想接收包含与变量相同的文本的项目名称check

什么是最好的解决方案?

4

3 回答 3

2

使用字符串项和列表理解的简单版本:

item1 = ["test1", "test2"]
item2 = ["test3", "test4"]
item3 = ["test5"]
superItem = [item1, item2, item3]

check = "test1"
result = [item for item in superItem if check in item]

>>> result
[["test1", "test2"]]
于 2013-03-25T10:48:10.303 回答
1

我利用列表理解的实现。列表名称('itemn')存储在 superItem 字典中,因此您可以在需要时获取它。

item1 = ["test1", "test2"]
item2 = ["test3", "test4"]
item3 = ["test5"]

superItem = {
    'item1': item1,
    'item2': item2,
    'item3': item3
}

check = "test1"

result = [x for x in superItem if check in superItem[x]]

print result

性能测试:

$ time python2.7 sometest.py 
['item1']

real    0m0.315s
user    0m0.191s
sys 0m0.077s
于 2013-03-25T11:16:26.070 回答
1

我假设您会将这些变量保存在字典中,如下面的代码所示。

container = {
    'item1': {'test1', 'test2'},
    'item2': {'test3', 'test4'},
    'item3': {'test5'}
}
    }
check = 'test1'

for key in container:
    if check in container[key]:
        break

result = container[key]
print result

编辑

我为你添加了套装 - 你{ }为它们使用。

于 2013-03-25T10:56:03.767 回答