【问题标题】:Subtraction of two items from two lists in for command从 for 命令中的两个列表中减去两个项目
【发布时间】:2016-02-13 19:09:43
【问题描述】:

我对 Python 还很陌生,我仍然为我的 ICT 课程做一些基本的事情。

我的任务是创建一个程序来捕捉超速行驶的外国车牌。我已经完成了进出的次数,之后会分配到 10 个不同的车牌号(那一点并不重要)。

为了节省空间,我正在尝试在 Leave 和 Enter 列表上使用 for 命令,希望从 Leave 的项目中取出 Enter 的项目,以获得汽车获得 花费的时间在程序中从相机 A 到 B。

我怎样才能有效地做到这一点?这是我尝试过的东西,虽然我知道为什么会出错,但我在任何地方都找不到解决方案。

import itertools

Enter=[7.12,
       7.14,
       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.41] #A list for the times of cars passing Camera B

Timestaken=[]

for item in itertools.chain(Leave,Enter):
    Timestaken.append(item-item)

print(Timestaken)

我得到的结果是这样的,肯定是因为 for 命令仍然会从同一个项目中取出一个列表的项目???:

>>> 
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

【问题讨论】:

  • 顺便说一句,通过两个列表中的两个项目,我的意思是找到一种比 Leave[0]-Enter[0]、Leave[1]-Enter[1] 等更快的方法

标签: python list for-loop printing


【解决方案1】:

我想你在找zip

Enter=[7.12,
       7.14,
       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.41] #A list for the times of cars passing Camera B

for enter_data, leave_data in zip(Enter, Leave):
    print(leave_data - enter_data)

【讨论】:

  • 啊,您可能正在使用 Python 3。您需要在 print 语句上加上括号。我更新了在 Python 3 上工作的答案。
【解决方案2】:

你可以使用地图:

for interval in map(lambda x, y: y-x, Enter, Leave):
    print interval

当我尝试打印整个列表而不是一一打印时,请注意这在 python 2.7 中对我造成了一些奇怪的事情(请参阅此处Python 2.7.5 error printing list of float numbers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    相关资源
    最近更新 更多