我有一个像这样的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'}我试图打印每三个键从切分,也打印了伴随的价值。
所以我的愿望输出应该是这样的:
0-2 XYZ
3-5 XYZ
6-8 XYZ
9-11 XYZ
12-14 XYZ我尝试使用以下代码:
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是否有可能从字典中实现这一点,或者我是否需要转换成一个列表,提出任何建议。
发布于 2017-09-09 00:42:33
另一种解决办法可能是这样:
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发布于 2017-09-09 00:35:47
你可以试试
for i in range(0, len(my_dict), 3):
print("{}-{} {}".format(i, i+2, my_dict[i]))但这取决于所描述的my_dict的内容!
发布于 2017-09-09 00:36:48
我就是这样做的。
首先,我会把这个词转换成一个列表:
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, keyhttps://stackoverflow.com/questions/46125997
复制相似问题