首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >压缩中的键和值

问压缩中的键和值
EN

Stack Overflow用户
提问于 2015-11-13 16:28:47
回答 2查看 155关注 0票数 1

注意:我是Python新手。

我的任务是设计一个输出外国车牌的程序,但是如果他们超速的话,只能是。在此过程中,我可能犯了一些错误,但我需要帮助处理列表Timestaken2和字典Timestaken3。#UK和#F只是我的笔记,让我能够快速地看一看,哪个是,UK,,,以及一个F。

代码语言:javascript
复制
import re

distance=750 #variable for the distance between the Camera A and B (in m)
speedlimit=70 # (mps)
NumberPlates=["DV61 GGB",#UK
              "DS11 EUBG 20",#F
              "5T314 10A02",#F
              "24TEG 5063",#F
              "TR09 TRE",#UK
              "524 WAL 75",#F
              "TR44 VCZ",#UK
              "FR52 SWD",#UK
              "100 GBS 12",#F
              "HG55 BPO"#UK
              ]

Enter=[7.12,7.15,7.24,7.45,7.28,7.31,7.18,7.25,7.33,7.38] #A list for the times of cars passing Camera A

Leave=[7.56,7.24,7.48,7.52,7.45,7.57,7.22,7.31,7.37,7.47] #A list for the times of cars passing Camera B

Timestaken=[]
Timestaken2=[]
Timestaken3={}

for enter_data, leave_data in zip(Enter, Leave):
    Timestaken.append(leave_data-enter_data)

Timestaken=["%.2f" % (leave_data-enter_data) for enter_data, leave_data in zip(Enter, Leave)]
Timestaken2=[s.strip("0") for s in Timestaken]
Timestaken2=[s.strip('.') for s in Timestaken2]

for key,value in zip(NumberPlates,Timestaken2):
    Timestaken3[key]=value

print(Timestaken3)

for item in NumberPlates:
    UK_Numbers=list(filter(lambda x: re.match("[A-Z]{2}\d{2}\s+[A-Z]{3}$",x),NumberPlates))
    for item in UK_Numbers:
        if item in UK_Numbers:
            NumberPlates.remove(item)

print(NumberPlates)

for key,value in zip(NumberPlates,Timestaken2):
    Timestaken3[key]=value

print(Timestaken3)

print("10 cars have passed Camera A, then Camera B\n")

for key,value in Timestaken3.items():
    speed=distance/int(value)
    if speed>speedlimit:
        print(key,"is speeding with",speed,"mps")

我在程序中包括了print(),以查看程序最后做了什么。

代码语言:javascript
复制
for key,value in zip(NumberPlates,Timestaken2):
    Timestaken3[key]=value

我只期望剩下的NumberPlates,即外国的,将在这段代码之后被打印出来。Timestaken2是否存在问题,因为它仍然有10个值?

请帮助我任何您可能有的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-13 16:34:49

不太确定,但也许你只是想做一本新字典:

代码语言:javascript
复制
Timestaken4={}

for key,value in zip(NumberPlates,Timestaken2):
    Timestaken4[key]=value

print(Timestaken4)
票数 2
EN

Stack Overflow用户

发布于 2015-11-13 16:39:49

问题是,在代码的第二部分中,您正在重用TimesTaken3。如果您创建了一个用于加速外国汽车的新字典TimestakenForeign,那么您的代码似乎会像预期的那样工作:

代码语言:javascript
复制
print(NumberPlates)    

TimestakenForeign = {}

for key,value in zip(NumberPlates,Timestaken2):
    TimestakenForeign[key]=value

print(TimestakenForeign)

print("10 cars have passed Camera A, then Camera B\n")

for key,value in TimestakenForeign.items():
    speed=distance/int(value)
    if speed>speedlimit:
        print(key,"is speeding with",speed,"mps")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33697422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档