我有一个字典列表,并希望每个项目按特定的属性值排序.
考虑下面的数组,
[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
Run Code Online (Sandbox Code Playgroud)
排序时name,应该成为
[{'name':'Bart', 'age':10}, {'name':'Homer', 'age':39}]
Run Code Online (Sandbox Code Playgroud) 这将是一个很好的方式,从去{2:3, 1:89, 4:5, 3:0}到{1:89, 2:3, 3:0, 4:5}?
我检查了一些帖子,但他们都使用返回元组的"已排序"运算符.
字典在Python 3.6中排序(至少在CPython实现下),与之前的版本不同.这似乎是一个重大变化,但它只是文档中的一小段.它被描述为CPython实现细节而不是语言特性,但也暗示这可能成为未来的标准.
在保留元素顺序的同时,新字典实现如何比旧字典实现更好?
以下是文档中的文字:
dict()现在使用PyPy开创的"紧凑"表示.与Python 3.5相比,新dict()的内存使用量减少了20%到25%.PEP 468(在函数中保留**kwargs的顺序.)由此实现.这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖(这可能会在未来发生变化,但是在更改语言规范之前,希望在几种版本的语言中使用这个新的dict实现为所有当前和未来的Python实现强制命令保留语义;这也有助于保持与随机迭代顺序仍然有效的语言的旧版本的向后兼容性,例如Python 3.5).(由INADA Naoki在issue 27350中提供.最初由Raymond Hettinger提出的想法.)
2017年12月更新:Python 3.7 保证了dict保留插入顺序
构建给定文本中最常用单词的ASCII图表.
规则:
a-z和A-Z(字母字符)作为单词的一部分.She== she为了我们的目的).the, and, of, to, a, i, it, in, or, is澄清:考虑don't:这将被视为在范围2不同"单词" a-z和A-Z:(don和t).
可选(现在正式更改规范为时已晚)您可以选择删除所有单字母"单词"(这可能会缩短忽略列表).
解析给定的text(读取通过命令行参数指定的文件或管道输入;假设us-ascii)并构建word frequency chart具有以下特征的a:
width表示单词的出现次数(频率)(按比例).附加一个空格并打印单词.bar+ [space]+ word+ [space]应始终<= 80字符(确保考虑可能不同的条形和字长:例如:第二个最常见的单词可能要长得多)第一个虽然频率差别不大).在这些约束条件下最大化条宽,并适当缩放条(根据它们所代表的频率).一个例子:
这个例子的文本可以在这里找到(爱丽丝梦游仙境,刘易斯卡罗尔).
此特定文本将产生以下图表:
_________________________________________________________________________ |_________________________________________________________________________| she |_______________________________________________________________| …
假设我有一个字典.
data = {1:'b', 2:'a'}
Run Code Online (Sandbox Code Playgroud)
我希望按'b'和'a'对数据进行排序,以便得到结果
'a','b'
Run Code Online (Sandbox Code Playgroud)
我怎么做?
有任何想法吗?
我发现的唯一方法是为python2工作或仅返回元组列表.
是否可以对字典进行排序,例如{"aa": 3, "bb": 4, "cc": 2, "dd": 1},通过其值?
我想要实现的排序字典顺序是从最大到最小.我希望结果看起来像这样:
bb 4
aa 3
cc 2
dd 1
Run Code Online (Sandbox Code Playgroud)
排序后我想将它存储到文本文件中.
根据经验,似乎Python的默认列表排序器在传递元组列表时,将按每个元组中的第一个元素排序.那是对的吗?如果没有,那么通过第一个元素对元组列表进行排序的正确方法是什么?
我在python中遇到了JSON的问题.
事实上,如果我尝试执行此代码,python会给我一个排序的JSON字符串!
例如:
values = {'profile' : 'testprofile',
'format': 'RSA_RC4_Sealed',
'enc_key' : base64.b64encode(chiave_da_inviare),
'request' : base64.b64encode(data)
}
values_json = json.dumps(values, sort_keys=False, separators=(',', ':'))
Run Code Online (Sandbox Code Playgroud)
这是输出:
{"profile":"testprofile","enc_key":"GBWo[...]NV6w==","request":"TFl[...]uYw==","format":"RSA_RC4_Sealed"}
Run Code Online (Sandbox Code Playgroud)
如你所见,我试图使用"sort_keys = False",但没有任何改变.
如何阻止Python对JSON字符串进行排序?
我发现很多线程按照这里的值进行排序,但它似乎对我不起作用......
我有一个列表的字典有元组.每个列表都有不同数量的元组.我想按每个列表包含多少个元组对字典进行排序.
>>>to_format
>>>{"one":[(1,3),(1,4)],"two":[(1,2),(1,2),(1,3)],"three":[(1,1)]}
>>>for key in some_sort(to_format):
print key,
>>>two one three
Run Code Online (Sandbox Code Playgroud)
这可能吗?
python ×9
dictionary ×6
sorting ×6
python-3.x ×2
code-golf ×1
json ×1
list ×1
python-2.6 ×1
python-3.6 ×1