按两列打印已排序的列表(来自词典)

2024-09-29 19:18:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本带key1=v1l1, key2=val2, key3=val3, key4=val4的字典。本词典按sortedlist = sorted(dict_m.items(), key=lambda x: x[1])排序

现在我可以使用

for i in sortlist:
    print ('{:11s}'.format(i[0]) ,  ":", i[1])

我的输出是

key1=v1l1
key2=val2 
key3=val3
key4=val4

我需要做什么才能在两列中获得输出,如

key1=v1l1  key2=val2 
key3=val3  key4=val4

Tags: key字典itemsdictsortedkey2key1key3
3条回答

试试这个:

for i in [sortedlist[i:i+2] for i in range(0,len(sortedlist), 2)]:
    print(f"{i[0][0]}={i[0][1]}\t{i[1][0]}={i[1][1]}")

你可以这样做

for x,y in zip(sortedlist[0::2], sortedlist[1::2]):
    print("{0} {1}".format(x, y))
dict_m = {
       'key1': 'v1l1',
       'key2': 'val2',
       'key3': 'val3',
       'key4': 'val4', 
       'key10': 'v1l10',
       'key20': 'val20',
       'key30': 'val30',
       'key40': 'val40',
       }
sorted_m = sorted(dict_m.items())
sorted_mLng = len(sorted_m)
odd = lambda i: (((i < sorted_mLng) and sorted_m[i]) or ('N/A', 'N/A'))
[ print(f"{a[0]} = {a[1]}\t{b[0]} = {b[1]}") 
for a, b in [ (sorted_m[i], odd(i+1))
for i in range (0, sorted_mLng, 2)] ]

或作为三列…或

odd = lambda i: (((i < sorted_mLng) and sorted_m[i]) or ('N/A', 'N/A'))
[ print(f"{a[0]} = {a[1]}\t{b[0]} = {b[1]}\t{c[0]} = {c[1]}") 
for a, b, c in [ (sorted_m[i], odd(i+1), odd(i+2))
for i in range (0, sorted_mLng, 3)] ]

相关问题 更多 >

    热门问题