有没有办法使字典词典顺序忽略大写和小写?现在我知道制作字典词典顺序,但仍然混淆如何忽略小写和大写。以下是我尝试过的一些代码。
dic={'subject':'math','name':'','PS':'$'}
for key,value in sorted(dic.items()):
print(key+'='+value)
现在我有一个结果,PS=$在第一个,但我想把它放在中间,就像这样:
name=
PS=$
subject=math
在Python 3.6和3.7中,字典是插入顺序的,但是最好使用OderedDict
字典是在 Python 3.6+ 中排序的吗?
from collections import OrderedDict
dic={'subject':'math','name':'','PS':'$'}
dic_ord = OrderedDict(sorted(dic.items(), key=lambda t: t[0].lower()))
for key,value in dic_ord.items():
print(key, '=', value)
就地:不可能
原因:一旦修改了键,就无法从与修改后的键相同的旧字典中检索回原始值。这里唯一的方法是将修改后的密钥与原始密钥一起存储。
创建一个临时词典,比如dic_lex
.
将修改后的密钥(小写(存储为key
,将原始密钥存储为value
:
dic={'subject':'math','name':'','PS':'$'}
dic_lex={key.lower() : key for key in dic.keys()}
for key in sorted(dic_lex.keys()):
print(dic_lex[key]+'='+dic[dic_lex[key]])
指纹:
name=
PS=$
subject=math
将sorted
与字典构造函数一起使用
dic = dict(sorted(dic.items(), key=lambda x: x[0].lower()))
# {'name': '', 'PS': '$', 'subject': 'math'}