我能够识别汽车牌照并提取车牌值。有时,结果是不准确的,因为我正在使用OCR进行识别。我使用校验和来确保只打印和查看正确的结果。在计算了校验和之后,我需要使用另一个公式来得到盘子的最后一个字母。与这19个字母匹配,A=0,Z=1,Y=2,X=3,U=4,T=5,S=6,R=7,P=8,M=9,L=10,K=11,J=12,H=13,G=14,E=15,D=16,C=17,B=18。有没有什么方法可以使用循环来声明这些字母的值,而不是手动一个接一个地声明?请帮忙。非常感谢。
您可以使用列表并根据需要执行查找。
列表如下:
plate_letter_list = ['A', 'Z', 'Y', 'X', 'U', 'T', 'S', 'R', 'P', 'M', 'L', 'K', 'J', 'H', 'G', 'E', 'D', 'C', 'B']
案例1:从字母中查找值
如果需要查找与字母关联的数值,请使用index
方法:
letter = 'T'
print(plate_letter_list.index(letter))
>> 5
案例2:从值查找字母
如果您需要查找与数值关联的字母,请将其用作索引:
value = 13
print(plate_letter_list[value])
>> H
有两种方法可以搜索这些值。其中之一是使用List数据类型,如提供的@sal。另一种方法是使用Dictionary数据类型
**
使用列表数据类型的解决方案
**
pl_vals_list = ['A', 'Z', 'Y', 'X', 'U', 'T', 'S', 'R', 'P', 'M', 'L', 'K', 'J', 'H', 'G', 'E', 'D', 'C', 'B']
然后,您可以通过位置或值进行查找
要按位置进行搜索,将为您提供分配给字母表的值。
print(pl_vals_list[0])
。这将导致A
。
或者,您可以通过字母表本身进行搜索。在这种情况下,您必须使用index()
函数。
print(pl_vals_list.index('A'))
。这将产生你给字母表分配的数字。结果将是0
这为您提供了一种基于字母表或值进行查找的方法。
您也可以使用检查字母表是否在列表中
if 'A' in pl_vals_list:
#then do something for value A
elif 'B' in pl_vals_list:
#then do something for value B
else:
#then do something
您还可以使用for循环和枚举来遍历列表。然而,我不知道这对你是否有价值。
for i, v in enumerate(pl_vals_list):
#do something with each value in the list
#here i will store the index, and v will have the value - A, B, C, etc
你可以得到每一个的价值,并决定你想做什么。
**
使用字典数据类型的解决方案
**
同样,你也可以使用字典来做同样的事情。
pl_vals_dict = {'A':0, 'Z':1, 'Y':2, 'X':3, 'U':4, 'T':5, 'S':6, 'R':7, 'P':8, 'M':9, 'L':10, 'K':11, 'J':12, 'H':13, 'G':14, 'E':15, 'D':16, 'C':17, 'B':18}
要在字典中查找字母,可以使用
if 'A' in pl_vals_dict.keys():
#then do something for value A
elif 'A' in pl_vals_dict.keys():
#then do something for value B
else:
#do something else
另一种检查方法是:
x = True if 'F' in pl_vals_dict.keys() else False
在这种情况下,x
的值为False
您也可以使用get((函数来获取值。
x = pl_vals_dict.get('A') # OR
print (pl_vals_dict.get('A')
查找字典值的最简单方法是:
print (pl_vals_dict['A'])
这将导致CCD_ 11
但是,如果您尝试打印"F"的值,则必须小心,因为"F"不是字典中键值对的一部分,因此会引发错误。
print (pl_vals_dict['F'])
这将给您以下错误:
Traceback (most recent call last):
File "<pyshell#48>", line 1, in <module>
pl_vals_dict['F']
KeyError: 'F'
与列表类似,您还可以在字典中迭代键和值。不确定你是否需要使用这个,但这里有一个例子。
for k, v in pl_vals_dict.items():
#do something with each pair of key and value
#here k will have the keys A Z Y X ....
#and v will have the values 1, 2, 3, 4, ....