【问题标题】:Python sort list of dictionary by last namePython按姓氏排序字典列表
【发布时间】:2017-10-31 04:51:59
【问题描述】:

我正在尝试对 dep_list 进行排序,这是一个包含员工信息(姓名、部门、​​职位、薪水)的字典列表。现在我相信我按名字排序,但是我想按姓氏排序。尽可能不将“名称”分成 2 个不同的字符串。

#Function for adding employee information
def add_emp():
    #Ask the user to add an employee
    print("Enter the employee's information:\n")
    #Input first and last name
    name = str(input("What is the employee's name? ")).title()
    #Input employee position
    position = str(input("What is their position? ")).title()
    #Input employee department
    em_department = str(input("What is their department? ")).title()
    #Make sure the salary is numeric
    try:
        #Input employee salary
        salary = round(float(input("What is their salary? ")), 2)
        #Add information to a dictionary called employees
        employees[name] = {"name": name, "position": position,     "em_department": em_department, "salary": salary}
    except:
        print("Salaries must be numeric, silly!")

#Function for adding employees to dictionary by department
def dep_emp():
    #Go through all department names stored in the tuple
    for x in dep_tup:
        #Initialize department list each time to ensure correct sorting
        dep_list = []
        #Go through all employee dictionaries; when matched, add to the list associated with the corresponding key in the dep_dict dictionary
        for names in employees:
            if x == employees[names]["em_department"]:
                dep_list.append(employees[names])
                dep_list.sort(key=operator.itemgetter('name'))
                dep_dict[x] = dep_list
                continue

注意:字典列表如下所示: {

department1: [{'name': 姓名, 'em_department': 部门, 'position': 职位, 'salary': 薪水}, ...],

部门 2:[...]

}

【问题讨论】:

    标签: python python-3.x sorting dictionary


    【解决方案1】:
    dep_list.sort(key=lambda x: x['name'].split()[-1])
    

    对于dep_list 中的每个字典,找到与name 键关联的值,对其进行拆分,并根据拆分中的最后一个字符串(应该是姓氏)进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      相关资源
      最近更新 更多