对不起,我又回来了。这一次,我试图得到每个停车场的登记号码,并添加了以下代码:
data_dict = {}
dict_list = []
def createNameDict(filename):
path = "C:\Users\user\Desktop"
basename = "ParkingData_Part2.txt"
filename = path + "//" + basename
file = open(filename)
contents = file.read()
print contents,"\n"
data_list = [lines.split(",") for lines in contents.split("\n")]
for line in data_list:
regNumber = line[0]
name = line[1]
phoneExtn = line[2]
carpark = line[3]
details = (name,phoneExtn,carpark)
data_dict[regNumber] = details
print data_dict,"\n"
print data_dict.items(),"\n"
def getDetails(regNumber):
try:
print data_dict[regNumber]
except:
print regNumber, " not in dictionary"
return
def addRegistration(regNumber, details):
if regNumber not in data_dict:
data_dict[regNumber] = details
print regNumber, ":", details, "Registration details added"
else:
print regNumber, "Key Already exist, \n"
return data_dict
def registrationsPerCarpark(carpark):
for regNumber, details in data_dict:
return [key for key, value in data_dict.iteritems() if value == details][0]
#for carpark in data_dict.values():
# print sum(int(carpark))
#return
但是这些数值没有相加,因为它们不是数值。我已经在谷歌搜索了很多,但没有得到任何关于这方面的信息。我的代码输出是这样的:
^{pr2}$
您的}对。其次,您永远不会使用
for
循环将不起作用,因为迭代的in dictionary
构造只返回key
,而不是{carpark
变量。第三,它是无关的,因为你在返回语句中循环使用它,尽管你对它的使用没有意义。有人可以假设你只需要数一数某个停车场有多少辆车?在第
for regNumber, details in data_dict
行是错误的,您不能用这种方式迭代dict。您可能是指for regNumber, details in data_dict.items()
(或iteritems()
,但这将是python2特有的)。在如果我对任务理解正确,那么函数体应该看起来像下面这样:
注意值中的空格:例如,您应该查找}。要解决这个问题,请将
^{pr2}$' AgHort_Parking'
,而不是{createNameDict
改为do等等。 另外,
^{3}$createNameDict
内存效率低下,因为它一次将文件内容加载到内存中。要减少内存使用,请执行以下操作:这是另一种更紧凑的方法。在
其结果是:
^{pr2}$相关问题 更多 >
编程相关推荐