2014-09-29 59 views
-1

我有一个存储汽车注册牌的程序,以及它们的速度,用于一段路。输入的数据存储在两个单独的列表中。车辆注册格式为两个字母,两个数字,三个字母(例如/ DV61 EUB)从特定格式的列表中输出项目

我需要输出任何不符合此格式(个性化或国外车牌号码)但超出速度限制的车辆。我发现很难从列表中挑选不符合标准车辆登记格式的物品。

我需要一段代码,用于从列表中获取不同格式和超出速度限制的汽车注册。

def nonstandard(): 
    global OverLimit 
    global speed 
    count = 0 
    while count < len(RegPlate): 
     speed.append(SensorDist/(int(time[count]))) 
     OverLimit = "Registration Plate: " + str(RegPlate[count])+ "\n" + "Speed recorded: "+ str(speed[count]) 
     if RegPlate != []: 
      with open ("H:\\Programming Practice\\New controlled assessment\\Output.txt", "w") as text_file: 
       text_file.write(OverLimit) 
+0

你尝试过什么?提示:您可以对字符串进行索引,就像使用列表一样,所以'RegPlate [count] [0]'是第一个字符等。字符(实际上是所有字符串)都有名为'isdigit','isalpha' ,和'isspace',你可以在帮助中查找。 – abarnert 2014-09-29 21:52:57

+0

我想你想要一个简单的正则表达式在这里,如何:re.match(“^ [AZ] [AZ] [0-9] [0-9] [AZ] [AZ] [AZ] $”,“AB29CCCk “),然后检查一下是否有匹配? – jimmyb 2014-09-29 21:55:18

回答

0

如果你只想得到匹配您提供的图案列表中的项目,你可以使用refilter

import re 

l = ["DV61 EUB","DV61 EUBN"] 

print (list(filter(lambda x: re.match("[A-Z]{2}\d{2}\s+[A-Z]{3}$",x),l))) 

['DV61 EUB']