如何使用串列中的值對字典進行排序?
names = ['bread', 'banana', 'apple']
價格 = ['2'/span>, '4'/span>, '1'/span>]
...
dict = {'name': names, 'price': prices}。
dict現在是{'name': ['面包', '香蕉', '蘋果'], '價格': ['2', '4', '1']}
我想對字典進行排序,使第一個名字對應于較低的價格。
這是否可以通過在字典上進行排序來實作呢?
示例
sorted_dict = {'name': ['蘋果', '面包', '香蕉'], 價格。['1', '2', '4']}
uj5u.com熱心網友回復:
IIUC,你想根據第二個串列(價格)的值來對第一個串列(名字)進行排序。
如果這是你想要的,那么一個快速的方法就是使用pandas,因為你的資料結構(dict of lists),與pd.DataFrame非常匹配。
import pandas as pd
pd.DataFrame(d).sort_values('price').to_dict('list')
{'name'。['apple', 'bread', 'banana'], 'price': ['1'/span>, '2'/span>, '4'/span>]}。
根據OP的修改要求,增加了這個例子 -
names = ['bread', 'banana', 'apple']
價格 = ['2'/span>, '4'/span>, '1'/span>]
描述 = ['a','x','b']
...
d = {'name': 姓名, 'price': 價格, 'description': 描述}。
pd.DataFrame(d).sort_values('price') .to_dict('list')
{'name': ['apple', 'bread', 'banana'] 。
'價格': ['1, '2', '4'],
'description': ['b', 'a', 'x']}。
uj5u.com熱心網友回復:
你可以這樣做
import pandas as pd
names = ['面包', '香蕉', '蘋果']
價格 = ['2'/span>, '4'/span>, '1'/span>]
links = ['url_1'/span>, 'url_2'/span>, 'url_3'/span>]
val_dict = {'name': names, 'price': prices, 'link': links}.
df = pd.DataFrame(val_dict)
df = df.sort_values('price'/span>).to_dict('list'/span>)
print(df)
輸出:
{'name': ['apple', 'bread', 'banana'], 'price': ['1', '2', '4'], 'link': ['url_3', 'url_1', 'url_2']}。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/328366.html
標籤:
