我想知道python是否有一个内置方法来反转str()方法。
示例:MyList包含字典,字符串和整数。
MyList = [{1: 'one'}, 'blarg', 964]
我想说我想按照尺寸(长度)排列这些项目。 这是我的功能
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
如果我在MyList上运行此功能
sort_by_length(MyList)
目前的输出是:
["{1: 'one'}", 'blarg', 964]
预期产出:
[{'1': 'one'}, 'blarg', 964]
我能够从字符串中更改整数,但字典仍然是引号中的字符串(显然因为我只反转了整数而不是字典的str())。
我怎样才能将此元素反转回字典?
答案 0 :(得分:6)
您需要使用sorted
的key参数来指定要调用的函数。这里lambda
表达式可以正常工作。
>>> MyList = [{1: 'one'}, 'blarg', 964]
>>> sorted(MyList, key=lambda x: len(str(x)), reverse=True)
[{1: 'one'}, 'blarg', 964]
答案 1 :(得分:4)
通常heavier(X, Y) :- is_heavier(X, Y).
heavier(X, Y) :- is_lighter(Y, X).
lighter(X, Y) :- heavier(Y, X).
is_heavier(horse, mouse).
is_lighter(bird, horse).
并不意味着可以将某些内容解码回python对象。它旨在提供一个人类可读的字符串。如果要编码为机器可读的字符串,请使用json。