有没有办法使字典词典顺序忽略大写和小写?

  • 本文关键字:顺序 字典 有没有 python python-3.x
  • 更新时间 :
  • 英文 :


有没有办法使字典词典顺序忽略大写和小写?现在我知道制作字典词典顺序,但仍然混淆如何忽略小写和大写。以下是我尝试过的一些代码。

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'}

最新更新