对于此问题,我不允许使用zip功能:
我有两个数组,其中一个是苹果类型列表,另一个是引用每个苹果的甜度的数组。
names = ['Fuji', 'Honeycrisp', 'Ambrosia', 'Gala', 'Red Delicious', 'Mcintosh', 'Granny Smith']
sweetness = [3, 5, 8, 6, 7, 7.5, 1]
names[0]
和sweetness[0]
都对应于富士。
我需要始终使用一个排序的函数而不是使用zip函数来排列苹果的名称。
答案 0 :(得分:0)
zip()
是执行此操作的有效方法,但是您可以选择不包含zip()
的元素,例如:
names = ['Fuji', 'Honeycrisp', 'Ambrosia', 'Gala', 'Red Delicious',
'Mcintosh', 'Granny Smith']
sweetness = [3, 5, 8, 6, 7, 7.5, 1]
data = sorted((names[i], sweetness[i]) for i in range(len(names)))
[('Ambrosia', 8), ('Fuji', 3), ('Gala', 6), ('Granny Smith', 1),
('Honeycrisp', 5), ('Mcintosh', 7.5), ('Red Delicious', 7)
]
答案 1 :(得分:0)
使用sweetness
作为键,而不使用指定的zip()
:
>>> [names[i] for i in sorted(range(len(names)), key=lambda i: sweetness[i])]
['Granny Smith', 'Fuji', 'Honeycrisp', 'Gala', 'Red Delicious', 'Mcintosh', 'Ambrosia']