在 Python 中查找元素的列表枚举
Enumeration of a list for finding elements in Python
在 python 中如何遍历元素列表并查找列表中是否存在我需要的元素。
如果在列表中找到其中任何一个,则打印,否则说没有找到元素。 (& 在最后断言我的代码)
我只想从列表中搜索和查找必需的 3 个元素,即 'Name'、'Year' 和 'City_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
这明显是错误的,请您提出建议并纠正我做错的地方。谢谢。
你可以试试:
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
你的问题不完全understandable.Be更specific.I写下我理解你的问题的答案。
list = [ '姓名, 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']
reqVal = [ 'Name', 'Year', 'City_id' ] # items in List - if present or not
foundCount = 0
if 'Name' in list and 'Year' in list 'City_id' in list:
print('All are present')
使用Set
+info
list = { 'Name', 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time'}
reqVal = { 'Name', 'Year', 'City_id' } # items in List - if present or not
def isValInList():
assert True, reqVal.issubset(list)
isValInList()
发生了很多事情:
- 不要使用像 list
这样的预定义名称作为变量名
- 您需要将变量传递给函数
- 你的断言有什么用?
- foundCount 必须声明为全局
- 枚举生成一个元组
- 休息有什么用?
这个有效:
alist = ['Name', 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']
reqVal = ['Name', 'Year', 'City_id' ] # items in List - if present or not
def isValInList(alist, blist):
global foundCount
for num, entry_a in enumerate(alist):
if entry_a in blist :
print("Yes, %s required item is found in List : ", entry_a)
foundCount += 1
else:
print('No required items are found in list')
isValInList(alist, reqVal)
如果我们想将列表转换为元组的可迭代列表(或者根据条件检查获取索引,例如在线性搜索中您可能需要保存最小元素的索引),您可以使用枚举()函数。
示例:
# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
# Using enumerate()
for i, val in enumerate(list):
print (i, ",",val)
注意: 即使是方法#2 也可以找到索引,但是方法#1 不能(除非每次迭代都增加一个额外的变量)和方法#5给出了此索引的简明表示。
您正在迭代错误的列表:
for reqVal in enumerate(list):
if reqVal in list :
尝试:
for item in reqVal:
if item in list:
print("Yes, %s required item is found in List : ", element)
foundCount += 1
else:
print('No required items are found in list')
这样就不需要枚举了。
我看不出在遍历所有项目之前打破循环的意义。
此外,最好不要使用 "list" 作为 var 名称,因为这是 python 中的关键字。
在 python 中如何遍历元素列表并查找列表中是否存在我需要的元素。
如果在列表中找到其中任何一个,则打印,否则说没有找到元素。 (& 在最后断言我的代码)
我只想从列表中搜索和查找必需的 3 个元素,即 'Name'、'Year' 和 'City_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
这明显是错误的,请您提出建议并纠正我做错的地方。谢谢。
你可以试试:
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
你的问题不完全understandable.Be更specific.I写下我理解你的问题的答案。 list = [ '姓名, 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']
reqVal = [ 'Name', 'Year', 'City_id' ] # items in List - if present or not
foundCount = 0
if 'Name' in list and 'Year' in list 'City_id' in list:
print('All are present')
使用Set
+info
list = { 'Name', 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time'}
reqVal = { 'Name', 'Year', 'City_id' } # items in List - if present or not
def isValInList():
assert True, reqVal.issubset(list)
isValInList()
发生了很多事情:
- 不要使用像 list
这样的预定义名称作为变量名
- 您需要将变量传递给函数
- 你的断言有什么用?
- foundCount 必须声明为全局
- 枚举生成一个元组
- 休息有什么用?
这个有效:
alist = ['Name', 'Year', 'City_id', 'Region_Id' , 'Location', 'Source', 'Time']
reqVal = ['Name', 'Year', 'City_id' ] # items in List - if present or not
def isValInList(alist, blist):
global foundCount
for num, entry_a in enumerate(alist):
if entry_a in blist :
print("Yes, %s required item is found in List : ", entry_a)
foundCount += 1
else:
print('No required items are found in list')
isValInList(alist, reqVal)
如果我们想将列表转换为元组的可迭代列表(或者根据条件检查获取索引,例如在线性搜索中您可能需要保存最小元素的索引),您可以使用枚举()函数。
示例:
# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
# Using enumerate()
for i, val in enumerate(list):
print (i, ",",val)
注意: 即使是方法#2 也可以找到索引,但是方法#1 不能(除非每次迭代都增加一个额外的变量)和方法#5给出了此索引的简明表示。
您正在迭代错误的列表:
for reqVal in enumerate(list):
if reqVal in list :
尝试:
for item in reqVal:
if item in list:
print("Yes, %s required item is found in List : ", element)
foundCount += 1
else:
print('No required items are found in list')
这样就不需要枚举了。 我看不出在遍历所有项目之前打破循环的意义。
此外,最好不要使用 "list" 作为 var 名称,因为这是 python 中的关键字。