【发布时间】:2016-01-11 14:56:31
【问题描述】:
我正在尝试根据对象在列表中的位置来匹配列表中的对象。对于特定的 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):
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():
for item in l:
for lis in item:
if lis.index() == d['Client1']['file1DataPositions']:
print('Match Found')
iterationTest()
当我运行它时,我得到一个:“index() 需要至少 1 个参数(给定 0)”错误。
有没有正确的方法来做我想做的事情?
【问题讨论】:
-
if lis.index()你在这里检查什么?什么索引? -
列表的
index()方法至少需要一个参数——要查找第一次出现的索引的元素的值。 -
您是否要检查
lis的index是否为ind['Client1']['file1DataPositions'],例如在[1,3,5,6,9]列表中? -
与您要检查的内容匹配的索引?