Jon*_*nas 0 python dictionary list
我想知道python是否有一个内置方法来反转str()方法.
示例:MyList包含字典,字符串和整数.
MyList = [{1: 'one'}, 'blarg', 964]
Run Code Online (Sandbox Code Playgroud)
假设我想按大小(长度)排列这些项目.这是我的功能
def sort_by_length(mylist):
newlist = []
final = []
for i in mylist:
newlist.append(str(i))
final = list(reversed(sorted(newlist, key=len)))
for n,i in enumerate(final):
if i.isdigit() == True:
final[n]=int(i)
else:
pass
return final
Run Code Online (Sandbox Code Playgroud)
如果我在MyList上运行此函数
sort_by_length(MyList)
Run Code Online (Sandbox Code Playgroud)
目前的输出是:
["{1: 'one'}", 'blarg', 964]
Run Code Online (Sandbox Code Playgroud)
预期产量:
[{'1': 'one'}, 'blarg', 964]
Run Code Online (Sandbox Code Playgroud)
我能够从字符串中更改整数,但字典仍然是引号中的字符串(显然因为我只将整数而不是字典的str()反转).
我怎样才能将这个元素反转回字典?
您需要使用key参数sorted来指定要调用的函数.这里lambda表达式可以正常工作.
>>> MyList = [{1: 'one'}, 'blarg', 964]
>>> sorted(MyList, key=lambda x: len(str(x)), reverse=True)
[{1: 'one'}, 'blarg', 964]
Run Code Online (Sandbox Code Playgroud)