Python检查集合列表是否包含项目

时间:2018-03-18 06:48:55

标签: python list set

假设我有L = [{'G'}, {'D'}, {'B','C'}]

我想检查'C'是否在L中。

我尝试了{'C'} in L,但它返回False

我如何检查'C'是否在L?

2 个答案:

答案 0 :(得分:5)

您将元组与字符串匹配。你要做的是 -

  1. 使用list comprehension
  2. 迭代list set
  3. 对于每个set检查搜索字符串是否存在
  4. 获取boolean值列表,并将其放入any()函数,如果Truebooleanlist项中的任何一项True,则返回L = [{'G'}, {'D'}, {'B','C'}] print(any([ 'C' in i for i in L])) 1}}。
  5. 你应该做 -

    True
    

    <强>输出

    print(any([ 'X' in i for i in L]))
    

    另一个例子 -

    False
    

    <强>输出

    3='python'
    

答案 1 :(得分:0)

您还可以在真假条件下过滤结果基础:

[True]

输出:

def union_similar(list_data,values_data):
    checker = {}
    final_ = []
    for item in list_data:
        for values in values_data:
            if values in item:
                if values not in checker:
                    checker[values] = [item]
                else:
                    checker[values].append(item)

    sub_ = set()
    for check, no in checker.items():

        if len(no) > 1:

            for i in no:
                sub_.update(*i)

                list_data.remove(i)
        else:
            sub_.update(*no[0])
            list_data.remove(no[0])

    list_data.append(sub_)
    return list_data

print(union_similar(L,c))
  

更新评论依据:

你可以试试这个:

L = [{'G'}, {'D'}, {'B','C'}]
c=['C','G']
  

输出:

Test_case 1:

[{'D'}, {'B', 'C', 'G'}]

输出:

L = [{'G'}, {'D'}, {'B','C'},{'U','C'}]
c=['C','G']

Test_case_2:

[{'D'}, {'U', 'B', 'G', 'C'}]

输出:

int retryCount_ = 0;

Func<TimeSpan> myTimeoutProvider = () => 
    TimeSpan.FromMilliseconds(25*retryCount_);

// Configure variable timeout via a func provider.
Policy
    .Timeout(() => myTimeoutProvider)) // Func<TimeSpan> myTimeoutProvider
    .Retry(3, (exception, retryCount, context) =>
    {
        retryCount_ = retryCount;
        // do something 
    })
相关问题