【问题标题】:Python unpack a list into distinct components for comparisonPython 将列表解压缩为不同的组件以进行比较
【发布时间】:2014-03-29 11:20:14
【问题描述】:

我有以下 Python 数据结构:

 successorGameState.getGhostPositions()
 [(6.0, 2.0)]
 newPos
 (3, 4)

我想比较它们两者以确保它们不一样。最好将第一个解压缩成几个整数或修改为第二个像第一个一样的浮点数?

如何在 Python 中做到这一点,我已经尝试了两种方式,并且在这两种情况下都遇到了极大的阻力!

【问题讨论】:

    标签: python list floating-point int


    【解决方案1】:

    你可以直接比较:

    successorGameState.getGhostPositions()[0] != newPos
    

    比较两个元组,只有内容相同时才相等;如果浮点数代表整数准确,比较整数和浮点数是可行的。

    您可能需要测试浮点数和整数之间的最小差异,因为它们可以很容易稍微偏离:

    ghost_pos = successorGameState.getGhostPositions()[0]
    if abs(ghost_pos[0] - newPos[0]) > 0.01 and abs(ghost_pos[1] - newPos[1]) > 0.01:
        # The differ enough
    

    根据需要调整您的容差。

    【讨论】:

    • 输出是如此丑陋,虽然它让我发疯,有没有办法让它们一样?
    • 不清楚你想要达到什么目标;例如,何时认为位置不同?
    猜你喜欢
    • 2014-12-30
    • 2021-10-01
    • 2021-03-26
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2016-10-02
    相关资源
    最近更新 更多