如何根据用户输入更新字典并使用 python 根据值排序?
How to update the dictionary from the user input and sort according to values using python?
我下面有字典
{0: {'STATE': 'AL',
'POPULATION': '151449859682',
'TOP_CITY': '1',
'RANK': '1'},
1: {'STATE': 'NY',
'POPULATION': '8955557',
'TOP_CITY': '6',
'RANK': '2'},
2: {'STATE': 'CA',
'POPULATION': '7123215',
'TOP_CITY': '10',
'RANK': '3'},
3: {'STATE': 'PH',
'POPULATION': '68557813',
'TOP_CITY': '11',
'RANK': '4'},
4: {'STATE': 'IN',
'POPULATION': '7678676',
'TOP_CITY': '14',
'RANK': '5'}}
我想通过询问用户输入来根据 RANK 降序排序
value2sort= input('Enter the value to sort')
RANK
parameter= input('asc for ascending order and desc for descending order')
desc
预期结果低于
{4: {'STATE': 'IN',
'POPULATION': '7678676',
'TOP_CITY': '14',
'RANK': '5'},
3: {'STATE': 'PH',
'POPULATION': '68557813',
'TOP_CITY': '11',
'RANK': '4'},
2: {'STATE': 'CA',
'POPULATION': '7123215',
'TOP_CITY': '10',
'RANK': '3'},
1: {'STATE': 'NY',
'POPULATION': '8955557',
'TOP_CITY': '6',
'RANK': '2'},
0: {'STATE': 'AL',
'POPULATION': '151449859682',
'TOP_CITY': '1',
'RANK': '1'}}
将 sorted
与 dict()
构造函数一起使用,然后将输入的值传递给排序,您可以设置一个字典,它可以传递 True/False
的参数来处理 asc/desc
value = input('Enter the value to sort: ')
param = input('Enter "asc" for ascending and "desc" for descending order: ')
order = {'asc': False, 'desc': True}
d = dict(sorted(d.items(), key=lambda x: int(x[1][value]), reverse=order[param]))
print(d)
Enter the value to sort: RANK
Enter "asc" for ascending and "desc" for descending order: desc
{4: {'STATE': 'IN', 'POPULATION': '7678676', 'TOP_CITY': '14', 'RANK': '5'}, 3: {'STATE': 'PH', 'POPULATION': '68557813', 'TOP_CITY': '11', 'RANK': '4'}, 2: {'STATE': 'CA', 'POPULATION': '7123215', 'TOP_CITY': '10', 'RANK': '3'}, 1: {'STATE': 'NY', 'POPULATION': '8955557', 'TOP_CITY': '6', 'RANK': '2'}, 0: {'STATE': 'AL', 'POPULATION': '151449859682', 'TOP_CITY': '1', 'RANK': '1'}}
我下面有字典
{0: {'STATE': 'AL', 'POPULATION': '151449859682', 'TOP_CITY': '1', 'RANK': '1'}, 1: {'STATE': 'NY', 'POPULATION': '8955557', 'TOP_CITY': '6', 'RANK': '2'}, 2: {'STATE': 'CA', 'POPULATION': '7123215', 'TOP_CITY': '10', 'RANK': '3'}, 3: {'STATE': 'PH', 'POPULATION': '68557813', 'TOP_CITY': '11', 'RANK': '4'}, 4: {'STATE': 'IN', 'POPULATION': '7678676', 'TOP_CITY': '14', 'RANK': '5'}}
我想通过询问用户输入来根据 RANK 降序排序
value2sort= input('Enter the value to sort')
RANK
parameter= input('asc for ascending order and desc for descending order')
desc
预期结果低于
{4: {'STATE': 'IN', 'POPULATION': '7678676', 'TOP_CITY': '14', 'RANK': '5'}, 3: {'STATE': 'PH', 'POPULATION': '68557813', 'TOP_CITY': '11', 'RANK': '4'}, 2: {'STATE': 'CA', 'POPULATION': '7123215', 'TOP_CITY': '10', 'RANK': '3'}, 1: {'STATE': 'NY', 'POPULATION': '8955557', 'TOP_CITY': '6', 'RANK': '2'}, 0: {'STATE': 'AL', 'POPULATION': '151449859682', 'TOP_CITY': '1', 'RANK': '1'}}
将 sorted
与 dict()
构造函数一起使用,然后将输入的值传递给排序,您可以设置一个字典,它可以传递 True/False
的参数来处理 asc/desc
value = input('Enter the value to sort: ')
param = input('Enter "asc" for ascending and "desc" for descending order: ')
order = {'asc': False, 'desc': True}
d = dict(sorted(d.items(), key=lambda x: int(x[1][value]), reverse=order[param]))
print(d)
Enter the value to sort: RANK Enter "asc" for ascending and "desc" for descending order: desc {4: {'STATE': 'IN', 'POPULATION': '7678676', 'TOP_CITY': '14', 'RANK': '5'}, 3: {'STATE': 'PH', 'POPULATION': '68557813', 'TOP_CITY': '11', 'RANK': '4'}, 2: {'STATE': 'CA', 'POPULATION': '7123215', 'TOP_CITY': '10', 'RANK': '3'}, 1: {'STATE': 'NY', 'POPULATION': '8955557', 'TOP_CITY': '6', 'RANK': '2'}, 0: {'STATE': 'AL', 'POPULATION': '151449859682', 'TOP_CITY': '1', 'RANK': '1'}}