Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在列表Python中查找某些值的特定索引_Python_Arrays_Python 3.x_List - Fatal编程技术网

如何在列表Python中查找某些值的特定索引

如何在列表Python中查找某些值的特定索引,python,arrays,python-3.x,list,Python,Arrays,Python 3.x,List,我有一个名为ModelsProduct的函数,在该函数中我生成“+/-”和“a、b、c、d、e”的所有可能组合。在以下代码中#producemodelsOne modelsStepOne选择所有8种组合的+/- modelsstep2选择列表i-ea的第一个值 modelsStepThree选择列表i-e的第一个值('a','a') modelsStepFour选择列表i-e的第一个值('d','d') modelsStepFive选择列表i-e的第一个值('e','e') 对所有可能的组合进行

我有一个名为ModelsProduct的函数,在该函数中我生成“+/-”“a、b、c、d、e”的所有可能组合。在以下代码中#producemodelsOne

modelsStepOne选择所有8种组合的+/-

modelsstep2选择列表i-ea的第一个值

modelsStepThree选择列表i-e的第一个值('a','a')

modelsStepFour选择列表i-e的第一个值('d','d')

modelsStepFive选择列表i-e的第一个值('e','e')

对所有可能的组合进行[+,+,+,+,+,+,+,+,+,a,a,d,d,e,e]的组合和迭代,依此类推

以下是打印时的输出

print (modelsOne[0])
print (modelsOne[1])
(“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“a”、“a”、“d”、“d”、“e”、“e”)

(“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“a”、“a”、“d”、“e”、“e”)

问题 如何在所有可能的组合中找到一个特定的索引值,例如可能的组合的索引值是什么[+,-,+,+,+,+,+,+,+,+,-,-,a,a,b,c,c,e,c]?

以下是制作所有可能组合的代码

def ModelsProduct(modelsOne, modelsTwo, modelsThree, modelsFour,modelsFive):

modelsStepOne = list(product("+-",repeat = 8)) ## It gives total 12288 model combinations
modelsStepThree = [('a','a'),('a','b'),('a','c'),('a','d'),('a','e'),('b','b'),('b','c'),('b','d'),('b','e'),('c','c'),('c','d'),('c','e')]
modelsStepFour = [('d','d'),('d','e')]
modelsStepFive = [('e','e')]



#produce modelsOne
modelsStepTwo = [('a',),('b',)]
for one in modelsStepOne:
    for two in modelsStepTwo:
        for three in modelsStepThree:
            for four in modelsStepFour:
                for five in modelsStepFive:
                    modelsOne.append(one+two+three+four+five)


#produce modelsTwo
modelsStepTwo = [('a',),('b',)]
for one in modelsStepOne:
    for two in modelsStepTwo:
        for three in modelsStepThree:
            for four in modelsStepFour:
                for five in modelsStepFive:
                    modelsTwo.append(one+two+three+four+five)


#produce modelsThree
modelsStepTwo = [('a',),('b',)]
for one in modelsStepOne:
    for two in modelsStepTwo:
        for three in modelsStepThree:
            for four in modelsStepFour:
                for five in modelsStepFive:
                    modelsThree.append(one+two+three+four+five)

#ModelsFour
modelsStepTwo = [('a',),('d',)]
for one in modelsStepOne:
    for two in modelsStepTwo:
        for three in modelsStepThree:
            for four in modelsStepFour:
                for five in modelsStepFive:
                    modelsFour.append(one+two+three+four+five)

 #ModelsFive
modelsStepTwo = [('a',),('e',)]
for one in modelsStepOne:
    for two in modelsStepTwo:
        for three in modelsStepThree:
            for four in modelsStepFour:
                for five in modelsStepFive:
                    modelsFive.append(one+two+three+four+five)

 return modelsOne, modelsTwo, modelsThree, modelsFour, modelsFive

modelsOne, modelsTwo,modelsThree, modelsFour,modelsFive = ModelsProduct(modelsOne, modelsTwo, modelsThree, modelsFour, modelsFive)
方法index()返回obj出现的列表中的索引。此方法返回找到的对象的索引,否则会引发异常,指示找不到该值

例如:

alist = [123, 'xyz', 'muhammad', 'abc'];
print ("Index for xyz : ", alist.index( 'xyz' ))
print ("Index for Muhammad : ", alist.index( 'muhammad' ) )

Index for xyz :  1
Index for Muhammad :  2
上述问题中讨论的问题可以是

 print("Index of ModelsOne :",modelsOne.index(('+', '+', '+', '+', '+', '+', '+', '+', 'a', 'a', 'a', 'd', 'd', 'e', 'e')))
输出:

Index of ModelsOne :6144

您可以使用
modelsOne.index()
获取列表中元素的索引,因此如果使用
modelsOne.index((“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“+”、“a”、“a”、“d”、“d”、“e”、“e”))
您会得到0,这是您的问题吗?是的,我想打印任何可能组合的索引值。组合可以是[+、-、+、-、+、+、-、-、-、a、a、b、c、d、d、e]或[+、+、+、-、-、-、+、-、a、a、b、b、d]