我正在构建一个函数,它接受一个包含三种不同类型元素的列表:整数、 float 和字符串。该函数将列表转换为字典,其中包含这三个不同类别中的每一个的键。然后将原始列表中的每个元素放入适当的键值对中(例如,列表中的所有字符串元素都分配给“字符串”键)。我能够使它正常工作,但是我无法对字典值(列表)中的值进行排序。这是我拥有的:
def list_dict_sort(input_list):
mixed_list =['asdf', 33, 'qwerty', 123.45, 890, 3.0, 'hi', 0, 'yes', 98765., '', 25]
sorted_dict = {}
sorted_dict['integer'] = []
sorted_dict['float'] = []
sorted_dict['string'] = []
for x in mixed_list:
if "int" in str(type(x)):
sorted_dict['integer'].append(x)
elif "float" in str(type(x)):
sorted_dict['float'].append(x)
elif "str" in str(type(x)):
sorted_dict['string'].append(x)
sorted_dict.sort
return(sorted_dict)
list_dict_sort(mixed_list)
返回:
{'float': [123.45, 3.0, 98765.0],
'integer': [33, 890, 0, 25],
'string': ['asdf', 'qwerty', 'hi', 'yes', '']}
所以从结构上讲,这个函数得到了我想要的,除了值列表是排序的。我想要的确切输出是:
{'float': [3.0, 123.45, 98765.0],
'integer': [0, 25, 33, 890],
'string': ['asdf', 'hi', 'qwerty', 'yes', '']}
理想情况下,我想避免在此处进行导入(例如运算符),我只是在寻找一种对值列表进行排序的简单/基本方法。我尝试使用 sort
和 sorted()
但无法弄清楚如何将它们构建到我已有的内容中。
是否有一种简洁的方法或更有效的方法?
最佳答案
您可以遍历这些值并对它们进行排序:
for v in sorted_dict.values():
v.sort();
关于python - 创建一个以列表为值的字典,并对列表内的元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48652438/