【问题标题】:Mapping issue with multiple lists in PythonPython 中多个列表的映射问题
【发布时间】:2023-02-14 23:41:36
【问题描述】:

我有两个列表 J1A1。我有另一个列表 J2,其中包含来自 J1 的一些元素。我想使用 A2 打印来自 A1 的相应值。我展示了当前和预期的输出。

J1 = [1, 7, 9, 11]
A1 = [2.1,6.9,7.3,5.4]

J2 = [1, 9]
J2,A2=map(list, zip(*((a, b) for a, b in zip(J2,A1))))
print(A2)

当前输出是

[2.1, 6.9]

预期的输出是

[2.1, 7.3]

【问题讨论】:

  • 你确定你了解的效果拉链(J2,A1)?另外,请解释预期输出背后的理由
  • 如果重复 J1 中感兴趣的值怎么办?如果 A1 和 J1 的长度不同怎么办?如果感兴趣的值不在 J1 中怎么办?

标签: python list


【解决方案1】:

J1 = [1, 7, 9, 11] A1 = [2.1,6.9,7.3,5.4]

J2 = [1, 9]

A2 = [A1[J1.index(a)] 对于 J2 中的 a] 打印(A2)

【讨论】:

    【解决方案2】:

    定义一个dict,然后使用J2中的值作为键。 operator.itemgetter 会很有用。

    from operator import itemgetter
    d = dict(zip(J1, A1))
    A2 = list(itemgetter(*J2)(d))
    

    【讨论】:

      猜你喜欢
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多