首页 > 解决方案 > Python:通过另一个函数中的参数对列表进行排序

问题描述

我正在尝试fruit()使用该功能进行排序key=sortby(),然后打印到屏幕上 - 无论是在它自己的功能内fruit()还是在它自己的功能内。

当没有fruit()函数时它工作得很好,但是我很难找出正确的语法来par作为要使用的参数传递fruit()

fruit = [["Apples", 30], ["Bananas", 100], ["Pears", 0], ["Peaches", 20]]

def sortby(par):
    return par[1]

def fruit():
    rate = []

    fruit.sort(key=sortby, reverse=True)

    for success in fruit:
        rate.append(success[0])
        rate.append(success[1])

    str = str(rate)

print(str)

标签: pythonfunctionsortingparameters

解决方案


您的代码有几个问题:

  1. 您需要从fruit函数中返回一个值
  2. 您需要为该fruit函数指定与列表不同的名称
  3. 您需要fruit在某个时候实际调用该函数
  4. 避免str用作变量名,因为这是 Python 中的内置函数

但是,该sortby功能工作正常。

fruit = [["Apples", 30], ["Bananas", 100], ["Pears", 0], ["Peaches", 20]]

def sortby(par):
    return par[1]

def sort_fruit():
    rate = []

    fruit.sort(key=sortby, reverse=True)

    for success in fruit:
        rate.append(success[0])
        rate.append(success[1])

    return rate

print(sort_fruit())

推荐阅读