Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Indexing - Fatal编程技术网

Python-基于列表位置的对象匹配

Python-基于列表位置的对象匹配,python,loops,indexing,Python,Loops,Indexing,我试图根据对象在列表中的位置匹配列表中的对象。对于特定的CSV,列表中的位置始终相同,但根据客户端的不同而有所不同 我有一个包含5个客户端的字典和CSV中包含数据的列: d = {'Client1':{ 'file1DataPositions':[1,3,5,6,9], 'file2DataPositions':[2,4,5,7,8]}, 'Client2':{ 'file1DataPosi

我试图根据对象在列表中的位置匹配列表中的对象。对于特定的CSV,列表中的位置始终相同,但根据客户端的不同而有所不同

我有一个包含5个客户端的字典和CSV中包含数据的列:

d = {'Client1':{
                'file1DataPositions':[1,3,5,6,9],
                'file2DataPositions':[2,4,5,7,8]},
     'Client2':{
                'file1DataPositions':[3,4,5,6,7],
                'file2DataPositions':[1,5,7,8,9]},
     'Client3':{
                'file1DataPositions':[2,6,7,8,9],
                'file2DataPositions':[1,2,7,8,9]},
     'Client4':{
                'file1DataPositions':[2,3,4,6,6],
                'file2DataPositions':[1,3,5,7,9]},
     'Client5':{
                'file1DataPositions':[2,4,6,8,9],
                'file2DataPositions':[5,6,7,8,9]}
     }
我有一个填充的嵌入式列表(一个解析的CSV):

根据索引在嵌入列表中的位置,我想检查索引是否匹配:

def iterationTest():
    for item in l:
        for lis in item:
            if lis.index() == d['Client1']['file1DataPositions']:
                print('Match Found')

iterationTest()
当我运行此命令时,我得到一个:“index()至少接受一个参数(0给定)”错误

有没有正确的方法来做我想做的事情

使用
枚举()


这将迭代
项中的每个
lis
,在循环的每个阶段,它将提供对
lis
及其索引
idx
(用于比较)的访问。

您到底想做什么?您正在查找列表的索引? 我猜你正在尝试这样做:

d = {'Client1':{
                'file1DataPositions':[1,3,5,6,9],
                'file2DataPositions':[2,4,5,7,8]},
     'Client2':{
                'file1DataPositions':[3,4,5,6,7],
                'file2DataPositions':[1,5,7,8,9]},
     'Client3':{
                'file1DataPositions':[2,6,7,8,9],
                'file2DataPositions':[1,2,7,8,9]},
     'Client4':{
                'file1DataPositions':[2,3,4,6,6],
                'file2DataPositions':[1,3,5,7,9]},
     'Client5':{
                'file1DataPositions':[2,4,6,8,9],
                'file2DataPositions':[5,6,7,8,9]}
     }
l = [['data1','123','ABC','CompanyName','Employee1','15','123 Notareallstreet','Bobs Trucks','Newyork'],
     ['data2','456','DEF','CompanyName','Employee2','15','123 Notareallstreet','Bobs Trucks','Newyork'],
     ['data3','789','GHI','CompanyName','Employee3','15','123 Notareallstreet','Bobs Trucks','Newyork'],
     ['data4','012','JKL','CompanyName','Employee4','15','123 Notareallstreet','Bobs Trucks','Newyork']]

def iterationTest(Preview=True):
    for clientKey , clientValue in d.iteritems():
        for dataKey, dataValue in clientValue.iteritems():
            if Preview:
                print "Data Position: %s"%dataKey
            for eachnum in dataValue:
                if eachnum <= len(l[0])-1:
                    if Preview:
                        print "Match Number: %s"%eachnum
                        print "Number Value: %s"%l[0][eachnum]
                        print "------------------------------"
            if Preview:
                print "=============================="

iterationTest()
d={'Client1':{
“file1DataPositions”:[1,3,5,6,9],
'file2DataPositions':[2,4,5,7,8]},
“客户2”:{
“文件1数据位置”:[3,4,5,6,7],
'file2DataPositions':[1,5,7,8,9]},
“客户3”:{
“file1DataPositions”:[2,6,7,8,9],
'file2DataPositions':[1,2,7,8,9]},
“客户4”:{
“file1DataPositions”:[2,3,4,6,6],
'file2DataPositions':[1,3,5,7,9]},
“客户5”:{
“file1DataPositions”:[2,4,6,8,9],
'file2DataPositions':[5,6,7,8,9]}
}
l=[[data1'、'123'、'ABC'、'CompanyName'、'Employee1'、'15'、'123 NotRealStreet'、'Bobs卡车'、'Newyork'],
['data2'、'456'、'DEF'、'CompanyName'、'Employee2'、'15'、'123 notreallstreet'、'Bobs Trucks'、'Newyork'],
['data3'、'789'、'GHI'、'CompanyName'、'Employee3'、'15'、'123 NotRealstreet'、'Bobs卡车'、'Newyork'],
['data4','012','JKL','CompanyName','Employee4','15','123 NotRealstreet','Bobs卡车','Newyork']
def迭代测试(预览=真):
对于clientKey,d.iteritems()中的clientValue:
对于dataKey,clientValue.iteritems()中的dataValue为:
如果预览:
打印“数据位置:%s”%dataKey
对于数据值中的每个值:

if eachnum
if lis.index()
您在这里检查什么?什么索引?列表的方法至少需要一个参数-元素的值来查找第一次出现的索引。您是否试图检查
lis
索引是否位于
中的
中,例如在列表中的
[1,3,5,6,9]
?与您要检查的内容相匹配的索引?是!“如果您试图检查lis的idx是否在d['Client1']['file1DataPositions'],请使用d['Client1']['file1DataPositions']中的If idx::”这正是我试图做的。我会接受这个答案的!
def iterationTest():
    for item in l:
        for idx, lis in enumerate(item):
            if idx in d['Client1']['file1DataPositions']:
                print('Match Found')

iterationTest()
d = {'Client1':{
                'file1DataPositions':[1,3,5,6,9],
                'file2DataPositions':[2,4,5,7,8]},
     'Client2':{
                'file1DataPositions':[3,4,5,6,7],
                'file2DataPositions':[1,5,7,8,9]},
     'Client3':{
                'file1DataPositions':[2,6,7,8,9],
                'file2DataPositions':[1,2,7,8,9]},
     'Client4':{
                'file1DataPositions':[2,3,4,6,6],
                'file2DataPositions':[1,3,5,7,9]},
     'Client5':{
                'file1DataPositions':[2,4,6,8,9],
                'file2DataPositions':[5,6,7,8,9]}
     }
l = [['data1','123','ABC','CompanyName','Employee1','15','123 Notareallstreet','Bobs Trucks','Newyork'],
     ['data2','456','DEF','CompanyName','Employee2','15','123 Notareallstreet','Bobs Trucks','Newyork'],
     ['data3','789','GHI','CompanyName','Employee3','15','123 Notareallstreet','Bobs Trucks','Newyork'],
     ['data4','012','JKL','CompanyName','Employee4','15','123 Notareallstreet','Bobs Trucks','Newyork']]

def iterationTest(Preview=True):
    for clientKey , clientValue in d.iteritems():
        for dataKey, dataValue in clientValue.iteritems():
            if Preview:
                print "Data Position: %s"%dataKey
            for eachnum in dataValue:
                if eachnum <= len(l[0])-1:
                    if Preview:
                        print "Match Number: %s"%eachnum
                        print "Number Value: %s"%l[0][eachnum]
                        print "------------------------------"
            if Preview:
                print "=============================="

iterationTest()