gpt4 book ai didi

python - 在 python 字典中编辑值

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

我有一个包含 1000 多个键的巨大字典,每个值的长度都超过 600 000 int。现在,我需要提取其中一些整数,所以我想从 600 000 到 5k。但它不能是随机的 5k,它们必须位于非常特定的位置。由于 5k 仍然有点大,无法手动提取,因此我需要使用一个索引列表来指示应提取值中的哪些整数。我测试了小列表的提取,索引为 [1,3,5,7,9] 和 long_val ['a','b','c','d','e','f','g ','h','i','j','k'] 然后我可以这样做:

for each in xrange(len(long_val)):
print indices[long_val[each]]

然后我得到 b、d、f、h 和 j(根据需要)。

现在,在处理字典时就没那么简单了(其中 long_val 被实际的字典值替换)。我试过了:

for keys,values in dict_gtps.iteritems():
for each in xrange(len(values)):
abs_new[keys]=pos_3[values[each]]

但是我收到“索引超出范围”的错误消息。

最佳答案

如果您使用相同的索引,使用itemgetter(*indices)会更高效

>>> from operator import itemgetter
>>> indices =  [1,3,5,7,9]
>>> long_val = ['a','b','c','d','e','f','g','h','i','j','k'] 
>>> ig = itemgetter(*indices)
>>> ig(long_val)
('b', 'd', 'f', 'h', 'j')

所以

from operator import itemgetter
ig = itemgetter(*indices)
for k, v in dict_gtps.iteritems():
print ig(v)
abs_new[k] = ig(v)

你也可以使用字典理解

abs_new = {k:ig(v) for k,v in dict_gtps.iteritems()}

关于python - 在 python 字典中编辑值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821823/

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