我有以下问题。 我创建了以下列表:
usinlist = [['strawberries', 2.05, 'rosales'],
['pineapples', 2.05, 'poales'],
['bananas', 2.05, 'zingiberales'],
['oranges', 2.05, 'sapindales'],
['apples', 2.05, 'rosales'],
['broccoli', 2.05, 'rosales'],
['cauliflower', 2.05, 'rosales'],
['cucumber', 2.05, 'cucurbitales'],
['lettuce', 2.05, 'asterales'],
['sprouts', 2.05, 'rosales']]
我需要打印此列表并使用3元素usinlist [x] [x] [2]按字母顺序对其进行排序。 我现在要排序的代码如下:
print('\n'.join('{}: {}'.format(*k) for k in sorted(usinlist, key=lambda k: (k[2], k[0], k[1]))))
按字母顺序对种类/类型[2]进行排序后,它按字母顺序对水果/蔬菜名称进行排序,但出现的问题是它会排序,但不会打印完整的列表。
输出如下:
lettuce: 2.05
cucumber: 2.05
pineapples: 2.05
apples: 2.05
broccoli: 2.05
cauliflower: 2.05
sprouts: 2.05
strawberries: 2.05
oranges: 2.05
bananas: 2.05
谁能告诉我这里有什么问题:)?
答案 0 :(得分:5)
您的格式字符串中只有两个占位符。尝试使用
print('\n'.join('{}: {} ({})'.format(*k) for k in sorted(usinlist, key=lambda k: (k[2], k[0], k[1]))))
或您需要的任何格式。
答案 1 :(得分:1)
这个?:
print('\n'.join('{}: {}: {}'.format(*k) for k in sorted(usinlist, key=lambda k: (k[2], k[0], k[1]))))