首页 > 解决方案 > 枚举用于在 Python 中查找元素的列表

问题描述

在 python 中,如何遍历元素列表并查找我需要的元素是否存在于列表中。

如果在列表中找到其中任何一个,则打印,否则说没有找到元素。(并在最后声明我的代码)

我只想从列表中搜索并查找强制性 3 个元素,即“名称”、“年份”和“城市 ID”。

最后用 foundcount 断言,以便测试失败或通过。

这是我的代码:

list = [ 'Name, 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']

reqVal = [ 'Name', 'Year', 'City_id' ] # items in List - if present or not
foundCount = 0

def isValInList():
    for reqVal in enumerate(list):
        if reqVal in list :
            print("Yes, %s required item is found in List : ", reqVal)
            foundCount += 1
        else:
            print('No required items are found in list')
            break


        assert (foundCount == 0)

isValInList()

所以目前当我运行这段代码时,我得到

No required items are found in list

这显然是错误的,您能否建议并纠正我做错的地方。谢谢。

标签: pythonlistenumeration

解决方案


你可以试试:

my_list = ['Name', 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']
reqVal = ['Name', 'Year', 'City_id']

count_for_reqVal = {req_val : my_list.count(req_val) for req_val in reqVal}

print(count_for_reqVal)

#output : {'Name': 1, 'Year': 1, 'City_id': 1}

另外,我试图重用您的代码:

list = [ 'Name', 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']

reqVal = [ 'Name', 'Year', 'City_id', 'Test' ] # items in List - if present or not


def isValInList():
    foundCount = 0

    for val in reqVal:
        if val in list :
            print("Yes, '%s' required item is found in list" %  val)
            foundCount += 1

        else:
            print("No, '%s' required item is not in list" %  val)

    if foundCount == 0:
            print('No required items are found in list')



isValInList()

# output:
# Yes, 'Name' required item is found in list
# Yes, 'Year' required item is found in list
# Yes, 'City_id' required item is found in list
# No, 'Test' required item is not in list

推荐阅读