簡體   English   中英

python中嵌套for循環中列表的索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM