[英]Index of a list in a nested for loop in python
我有一个嵌套循环。 我想迭代列表列表并检查参数是否在列表中,带回列表索引。
parameter="Abcd"
li1=["ndc","chic"]
li2=["Abcd","cuisck"]
Li=[li1,li2]
for i in Li:
for j in i:
if (parameter==j):
x=i+1
print(x)
我期望这个例子中的整数 x=2。 但它不起作用。 我怎样才能做到这一点?
使用enumerate
,它返回索引和元素。 还可以使用比列表更快的集合(对于长列表)。
parameter = "Abcd"
lst1 = ["ndc", "chic"]
lst2 = ["Abcd", "cuisck"]
lst = [lst1, lst2]
x = None
for i, sublst in enumerate(lst):
if parameter in set(sublst):
x = i+1
print(x)
# 2
你没有指定你期望的输出,但我认为你想要这样的东西:
parameter="Abcd"
li1=["ndc","chic"]
li2=["Abcd","cuisck"]
Li=[li1,li2]
for row in Li:
for i, j in enumerate(row):
if parameter == j:
print("List", Li.index(row),"Element", i)
输出:
List 1 Element 0
使用numpy
数组。 它将为您节省大量时间和成本。
Li = np.array([li1,li2])
Li == parameter
array([[False, False],
[ True, False]])
row, column = np.where(Li == parameter)
row
Out[17]: array([1], dtype=int64)
parameter="Abcd"
li1=["ndc","chic"]
li2=["Abcd","cuisck"]
Li=[li1,li2]
index = -1
for i in Li:
if parameter in i:
index = Li.index(i)
print(index)
您可以使用 'in' 检查是否在列表中,并使用 .index 获取元素的索引,它返回列表中的整数位置。 也许你想要一个嵌套位置的元组? 使用类似(Li.index(i), i.index(parameter))
作为返回值。 不要忘记在循环范围之外声明您的返回值!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.