0

因此,我尝试广泛地执行此操作,但无济于事。我正在编写一个程序,该程序采用具有列表的名称字典以及列表中事物数量的数值。我想打印列表中的每个名称,以便打印的第一个名称是列表中值最少的名称,打印的姓氏是列表中值最多的名称.. 这里是我的代码。它只打印作为键的名称,然后打印整个值列表。然后它打印 e 结束。所以

"anna" 3 4 5 6 e "dan" 3 4 6 e "cilla" 3 4 e "billy" 6 e ...等等

for GPS in GNR:

    print('"'+GPS+'"')
    for s in GNR[GPS]:
        print(s)
    print("e")

这是字典及其值。

GNR = {"安娜":[3,4,5,6],"比利":[6],"cilla":[3,4],"dan":[3,4,6]}

所以我想要的结果不是上面的,而是这个:

“比利” 6 e “cilla” 3 4 e “丹” 3 4 6 e “安娜” 3 4 5 6 e

如您所见,它首先打印列表中值最少的名称,然后是其余的。

我不知道如何做到这一点:(我知道我需要将每个值与其他值进行比较,然后将其保存在某个地方,但我不知道在哪里。任何帮助都会得到帮助 :)

4

1 回答 1

1

要获取按相应列表中元素数量排序的键,您可以执行以下操作:

ascending = sorted(GNR, key=lambda x: len(GNR[x]))
# ascending is ['billy', 'cilla', 'dan', 'anna']

for key in ascending:
    li = GNR[key]
    # print them etc.
于 2012-04-04T01:41:00.337 回答