【问题标题】:Shorter way to write a python for loop编写python for循环的更短方法
【发布时间】:2023-03-03 21:27:01
【问题描述】:

有没有更短的方法来用 Python 编写这个? 这里 d 是一个 python 字典, a 是一个 numpy 数组。

i = 0
for b in a:
    d[b] = a[:,i]
    i += 1

`

【问题讨论】:

    标签: python for-loop dictionary


    【解决方案1】:

    您可以使用enumerate 迭代器:

    for i, b in enumerate(a):
        d[b] = a[:,i]
    

    既然你要进入一个字典,你可以这样做:

    d.update((b, a[:,i]) for i, b in enumerate(a))
    

    【讨论】:

      【解决方案2】:

      dict compenumerate

      d = {b: a[:,i] for i,b in enumerate(a)}
      

      enumerate 为您提供a 中每个元素的索引,这相当于您的i 变量。 dict comp中的第一个变量是key,第二个是value,相当于d[b] = a[:,i]

      附带说明,如果 b 碰巧重复,那么您将只能获得重复的 b 的最后一个值,因为 dicts 不能有重复的键。

      【讨论】:

        猜你喜欢
        • 2017-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多