python字典的值可以是列表吗_python-创建一个以列表为值的字典,并对列表...
我正在构建一个函数,该函数需要一个包含三种不同类型元素的列表:整数,浮点数和字符串.该函数将列表转换为包含这三个不同类别中的每个类别的键的字典.然后,将原始列表中的每个元素放入相应的键值对(例如,列表中的所有字符串元素都分配给“字符串”键).我能够使其正常工作,但是无法对字典值(列表)中的值进行排序.这是我所拥有的:def list_dict_sort(input_list):mixed_list
我正在构建一个函数,该函数需要一个包含三种不同类型元素的列表:整数,浮点数和字符串.该函数将列表转换为包含这三个不同类别中的每个类别的键的字典.然后,将原始列表中的每个元素放入相应的键值对(例如,列表中的所有字符串元素都分配给“字符串”键).我能够使其正常工作,但是无法对字典值(列表)中的值进行排序.这是我所拥有的:
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(),但无法弄清楚如何将它们构建到已有的文件中.
有没有这样做的干净方法,还是有更有效的方法?
更多推荐
所有评论(0)