我有一个看起来像这样的dict文件:
0-2 XYZ
3-5 XYZ
6-8 XYZ
9-11 XYZ
12-14 XYZ
我正在尝试打印dict中的每个第三个键,并打印随附的值。
所以我的愿望输出看起来像这样:
my_dict={0: 'XYZ', 1: 'XYZ', 2: 'XYZ', 3: 'XYZ', 4: 'XYZ', 5: 'XYZ', 6: 'XYZ', 7: 'XYZ', 8: 'XYZ', 9: 'XYZ', 10:'XYZ',11:'XYZ',12:'XYZ',13:'XYZ',14:'XYZ'}
for key, val in my_dict.iteritems():
dash="-"
print key,dash,value
我尝试使用以下代码:
FROM alpine:edge
是否有可能从字典中实现这一点,或者我是否需要转换为列表,欣赏任何建议。
答案 0 :(得分:1)
你可以尝试
for i in range(0, len(my_dict), 3):
print("{}-{} {}".format(i, i+2, my_dict[i]))
但它取决于my_dict
实际上如所描述的内容!
答案 1 :(得分:0)
我就是这样做的。
首先我将dict转换为列表:
my_list = [(value, s) for value, s in my_dict.iteritems()]
sorted_list = sorted(my_list, key= lambda tup: tup[0])
shifted = sorted_list[2:]
# every 3rd
small_value = shorted_list[::3]
large_value = shifted[::3]
zip_values = zip(small_value, large_value)
outputs = [('{minv}-{maxv}'.format(minv=left_tup[0], maxv=right_tup[0]), right_tup[1]) for left_tup, right_tup in zip_values]
最后:
for value, key in output:
print value, key
答案 2 :(得分:0)
另一种解决方案可能是这样的:
my_list = [(value, s) for value, s in my_dict.iteritems()]
sorted_list = sorted(my_list, key= lambda tup: tup[0])
for index, value in sorted_list[2::3]:
out_string = '{}-{} {}'.format(index-2, index, value)
print out_string