gpt4 book ai didi

python - 字典组成和通过列表条目更新值

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:20 25 4
gpt4 key购买 nike

我有两个列表train_label和train_data,我想迭代每一行i,这是由for i in range(train_data.shape[0])完成的,我想更新字典中的每个值,以便在第 j 个键将具有列表中对应的第 i 个条目。所以我构建了这个列表理解,但是它只将字典的每个值更新为列表中的第一个值,有没有办法使用列表理解来做到这一点,以便每个第 j 个键在每个键中都有第 i 个值,值一对?

assoc_label = {}
_ = [assoc_label.update({entry : assoc_label.get(entry, train_label[i])}) for entry in range(train_data.shape[0] - 49997) for i in range(train_label.shape[0] - 49997)]

编辑:根据 @Scott Hunter 建议添加了内容

因此,train_label 将是一些列表,例如 [6.0, 4.0, 6.0],train_data 将是一些 float 的 numpy 数组,例如 [0.0123123, i, j],但是内容并不重要,我只想关联每个位置在 numpy 数组 [0, 1, 2] 中,这是我在字典 {0: 1: 2:} 中的键,train_label 列表中的值为 [6.0, 4.0, 6.0],这会产生一个字典,使得我有 {0: 6.0, 1: 4.0, 2:6.0} 否则 {entry: train_label[i]} 但是字典只会将所有值更新为 train_label[i] 的第 0 个值,这样 {0:6.0, 1: 6.0, 2:6.0}。我希望我没有把这个解释得太复杂,我只是想尽可能准确。

最佳答案

@ChrisP 的答案是使用 zip,而不是两个 for 循环:

 assoc_label = dict(zip(range(train_data.shape[0]), [train_label[i] for i in range(train_data.shape[0])]))
print assoc_label

关于python - 字典组成和通过列表条目更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35559729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com