gpt4 book ai didi

Python:循环字典,一次两个键

转载 作者:行者123 更新时间:2023-12-05 08:33:41 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序要求我一次循环字典中的两个键。这是我的字典的简单表示。

my_dict = {
'LAP0-1': 146.48,
'LAP1-1':44.11,
'LAP2-1':25.54,
'LAP3-1':75.29,
'LAP5-2':85.76,
'LAP6-2':46.87
}

# loop dictionary 1 key at a time
for k,v in my_dict:
print k + " | " + v;

我知道如果我有一个列表,我可以像这样一次循环 2 个项目:

for i in range(0, len(my_list), 2):
print my_list[i] + " | " + my_list[i+1];

但是否可以一次循环两个键的字典?

我想循环打印以下内容:

LAP0-1 | 146.48 ; LAP1-1 | 44.11
LAP1-1 | 44.11 ; LAP2-1 | 25.54
LAP2-1 | 75.29 ; LAP3-1 | 85.76
LAP5-2 | 85.76 ; LAP6-2 | 46.87

另一个我想到但不适合我的解决方案是:

for i in range(0, len(my_list), 2):
print my_dict[my_list[i]] + " | " my_dict[my_list[i+1]];

其中 my_list[i]'LAP0-1'my_list[i+1]'LAP1-1 '。必须存储 keep 2 个这样的数据结构似乎效率低下。如何一次循环两个键的字典?

最佳答案

from collections import OrderedDict
from itertools import tee

my_dict = OrderedDict([
('LAP0-1', 146.48),
('LAP1-1', 44.11),
('LAP2-1', 25.54),
('LAP3-1', 75.29),
('LAP5-2', 85.76),
('LAP6-2', 46.87)
])

# pairwise() from Itertools Recipes
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return zip(a, b)

for (key1, value1), (key2, value2) in pairwise(my_dict.items()):
print("{} | {} ; {} | {}".format(key1, value1, key2, value2))

输出

LAP0-1 | 146.48 ; LAP1-1 | 44.11
LAP1-1 | 44.11 ; LAP2-1 | 25.54
LAP2-1 | 25.54 ; LAP3-1 | 75.29
LAP3-1 | 75.29 ; LAP5-2 | 85.76
LAP5-2 | 85.76 ; LAP6-2 | 46.87

关于Python:循环字典,一次两个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37010754/

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