我正在尝试在python中创建矩阵或双数组[列表]的字典,这是我到目前为止所拥有的。我已经创建了字典,并为其分配了正确的键。我有一个能够成功解析a的excel文件,但是excel表的第一行有时包含重复的UPN编号(也就是可以容纳多辆汽车的汽车零件),我想扫描该行的这一部分并将其进行比较如果它们匹配则在其后的行,然后将其分配给矩阵,并将其作为键的值(这将是UPN,也就是可能适合多辆汽车的零件)。但我似乎无法破解。我是python的新手,这是低薪工作,但仍然如此。到底发生了什么事?
import csv
import collections
import sys
from collections import defaultdict
from Car_of_Interest import Car_of_Interest
import json
import numbers
import enum
import pickle
import shelve
#import dill as pickle
carDataFrame = {}
def main ():
data = csv.open(r"C:\Users\Ultrarev\Desktop\Duplicator-fier\Book1.csv")
data = csv.reader(data)
print("Data: (testing)")
def f7(seq):
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
with open(r"C:\Users\Ultrarev\Desktop\Emeran-Parser\Book1.csv", newline = '') as csvfile:
data = csv.reader(csvfile)
rowExcel = []
kPN = []
car_info = []
UPN = ()
cUPN = []
CARS = {}
#UPN_len = len(UPN)
for row in data:
open(r"C:\Users\Ultrarev\Desktop\Emeran-Parser\Book1.csv")
rowExcel.append(row)
car_info.append(row[2])
car_info.append(row[3])
car_info.append(row[4])
#print('-> '.join(row))
for row in rowExcel:
kPN.append(row[0])
# Convert to string.
list1 = kPN
str1 = ' '.join(str(e) for e in list1)
#Remove Duplicates in kPN.
UPN = f7(kPN)
l = UPN.__sizeof__()
print("kPN: ")
print(kPN)
print("Data: ")
print(data)
print("UPN: ")
print(UPN)
print("Major Car Information of File to be Parsed into HTML: ")
print(rowExcel)
print("Number of UPN's: ")
print(len(UPN))
print(len(kPN))
#for n in UPN:
data = open(r"C:\Users\Ultrarev\Desktop\Emeran-Parser\Book1.csv")
#create the foundation of the dictionary.
mydict=dict()
SANAD = []
for n in range(len(UPN)):
if (rowExcel[n][0] == rowExcel[n+1][0]):
while (rowExcel[n][0] == rowExcel[n+1][0]):
SANAD.append(rowExcel[n])
mydict.update({UPN[n]: SANAD}) #'tag %s' % n
print(mydict)
我期望mydict打印一个字典,其中UPN为键,值作为具有相同UPN的行矩阵。我还期望我的Python知识不适合该项目。
编辑:
我创建了另外两个类,一个叫做Car_of_Interest.py,这是一种工厂类,它产生存储每个汽车信息的car_I对象。
import pickle
#import dill
class Car_I:
def init(self,year,make,model,car_I):
data.self = data
x.self = year
y.self = make
z.self = model
data = {"year":year,
"mode":model,
"make":make
}
def __add__(self, other):
return 1
def printData(self):
print(x, y , z)
def honk_the_Horn(self):
print("Honk! Honk!")
def PRINT_Dic(self):
L = {}
L = {UPN:(x,y,z)}
print(L)
def make_INTERNAL_LABEL(self,label):
lUPN.self = label
return("lUPN")
import pickle
#import dill
class Car_I:
def init(self,year,make,model,car_I):
data.self = data
x.self = year
y.self = make
z.self = model
data = {"year":year,
"mode":model,
"make":make
}
def __add__(self, other):
return 1
def printData(self):
print(x, y , z)
def honk_the_Horn(self):
print("Honk! Honk!")
def PRINT_Dic(self):
L = {}
L = {UPN:(x,y,z)}
print(L)
def make_INTERNAL_LABEL(self,label):
lUPN.self = label
return("lUPN")
将这些信息存储为矩阵还是将car_of_Interest-> Car_I(n ...)用作更好的方法?