首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在python中构建区分大小写的字典

在Python中构建区分大小写的字典可以使用普通的字典结构,并通过自定义的键转换函数来实现区分大小写的功能。以下是一个示例代码:

代码语言:txt
复制
class CaseInsensitiveDict(dict):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._key_map = {}

    def __setitem__(self, key, value):
        normalized_key = key.lower()
        self._key_map[normalized_key] = key
        super().__setitem__(normalized_key, value)

    def __getitem__(self, key):
        normalized_key = key.lower()
        real_key = self._key_map.get(normalized_key)
        if real_key is None:
            raise KeyError(key)
        return super().__getitem__(normalized_key)

    def __delitem__(self, key):
        normalized_key = key.lower()
        real_key = self._key_map.pop(normalized_key, None)
        if real_key is None:
            raise KeyError(key)
        super().__delitem__(normalized_key)

    def __contains__(self, key):
        normalized_key = key.lower()
        return normalized_key in self._key_map

    def keys(self):
        return self._key_map.values()

    def items(self):
        return ((real_key, self[real_key]) for real_key in self.keys())

    def values(self):
        return (self[real_key] for real_key in self.keys())

这个示例代码定义了一个名为CaseInsensitiveDict的类,继承自Python内置的dict类。它重写了字典的一些方法,通过将键转换为小写来实现区分大小写的功能。同时,它还维护了一个_key_map字典,用于记录原始键和转换后的键之间的映射关系。

使用这个自定义的字典类,可以实现在字典中区分大小写的操作。例如:

代码语言:txt
复制
d = CaseInsensitiveDict()
d['Key'] = 'Value'
print(d['key'])  # 输出:Value
print('Key' in d)  # 输出:True
print(list(d.keys()))  # 输出:['Key']

在这个示例中,无论是通过d['Key']还是d['key']访问字典中的值,都可以得到正确的结果。同时,'Key' in d也会返回True,并且list(d.keys())会返回['Key']

对于区分大小写的字典,它可以在需要区分大小写的场景中发挥作用。例如,在处理用户输入时,可以使用这个字典来存储和检索用户输入的命令、选项等信息,以实现对大小写敏感的匹配。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅为示例,实际选择云计算产品时应根据具体需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

- Python字典

字典是由多个键 (key) 及其对应值 (value) 所组成一种数据类型字典 Python 里面是非常重要数据类型,而且很常用字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型字典由键和对应值成对组成...,字典中所有的键值对放在 { } 中间,每一对键值之间用逗号分开⭐️ 字典结构与创建方法 Python ,dict 代表着字典这一类型,也可以用它定义一个元祖 Python ,通过 {} 将一个个...1 行,创建了一个字典用于描述一个人属性第 2 行,使用字符串 'name'作为键(索引)访问字典对应第 4 行,使用字符串 'birthday' 作为键(索引)访问字典对应第 6...需要特别注意Python3.7之前版本字典是无序,之后版本变为有序。同时,字典最重要一个特性,字典每一个key一定是唯一。...2 个键值对字典第 2 行,使用关键字 in 检测键 'a' 是否字典 x 第 3 行,结果为真,表示键 'a' 字典 x 第 4 行,使用关键字 in 检测键 'c' 是否字典

17611

python字典

字典 :一个关联数组或散列表 ,可通过关键字索引对象。...字典用途:定义一个可包含多个命名字段对象,也可以用作快速查找无序数据容器 字典python中最完善数据类型 程序中最常用于存储和处理数据 如何创建: 1,{}中放入值即可创建一个空字典;...: 0 2,使用系统方法 get 判断是否是字典成员 p = prices.get('grape',0); print(p); 输出结果: 0 获取字典关键字列表 只需要将字典转换为列表即可: pricelist...:是一个关联性数组 或者散列表 2,创建字典:1 ,{} 2,dict() 2,字典用途:用于快速查找无序数据 常用于存储和处理数据 3,使用字典关键字索引获取数据 4,字典插入和修改  :使用关键字索引...  添加或者修改 格式 s[name] = 'data'; 5,判断元素是否存在于字典 :1 ,in  2,get 6, 获取字典关键字方法: list 声明为列表 6,删除字典元素 :del方法

2.6K70
  • python字典比较

    今天碰到一个字典比较问题,就是比较两个字典大小,其实这个用不多,用处也没多少,但是还是记录一下。...字典比较顺序如下: 1、先比较字典元素个数,那个多,就哪个大; 2、比较字典键,比较字典时候,需要注意是比较顺序是按照keys返回值来进行比较; 3、比较字典值,值也是按照items...返回值来进行比较,主要就是按照数字和字母大小比较; 4、如果以上比较都相等,那么就都是相等。...>>> cmp(dict1,dict3) #dict1kel比a大,字母ka后面 1 >>> dict4={'name':'kel','age':27} >>> dict5={'name':'mel...age name 这也就是一个字典比较,按照顺序来比较即可。

    4.5K10

    Python字典介绍

    前面已经介绍过python数据类型字符串、元组和列表,接下来介绍另一种数据类型:字典字典是一种无序(3.6版本后有序)对象集合,用{}标识,以key:value形式存储数据。...字典当中元素是通过键(key)来存取,而不是通过索引去取值。字典元素是键值对,键(key)必须使用不可变类型,同一个字典,键(key)是唯一。...创建字典: 通过dict函数创建字典 {key1:value1,key2:value2,...,key_n:value_n}:指定具体 字典键值对,键值对之间以逗号分隔,最后用大括号括起来。...函数修改: a = {"name":"xiaobo","age":29} row = {"height":173} a.update(row) 将字典值删掉: pop(key)函数:根据某个key删除数据...del 删除某个key: a = {"name":"xiaobo","age":29} del a["name"] 访问字典视图: items():返回字典所有键值对视图。

    2.5K20

    Python字典操作

    字典基本详情 字典查找速度快 字典是无序;(python3.6以上版本有序) 字典支持乘加、成员检查、长度、最小值、最大值、嵌套; 字典值不支持列表、元组、索引、切片、元素赋值跟切片赋值; 字典通过大括号表示...; 字典内容是项;项由键和值组成,中间用冒号隔开;项和项之间用逗号隔开;需要注意键必须是唯一字典意义是让用户能够快速找到特定单词(键),以获悉其定义(值); 字典通过键来进行查看值内容...字典值可以是字符串、数字、字典 字典赋值 dict1 = {'key1':'value1', 'key2':'value2'} 字典添加 dic1 = {'name': 'liangxiao',...字典删除 dic1 = {'name': 'liangxiao', 'age': 24} dic1.pop('name') # 根据key进行键值对删除,可设置返回值,没有找到相应...# 打印字典所有 dic1.get('name') # 查找指定keyvalue,没有则返回None dic1.items() # 一组一组查找所有内容

    2.6K10

    Python 字典操作

    字典由键及相对应值组成,这种键-值对称为项(item).在前面的示例,键为名字,而值为电话号码。...注意: 字典(以及其他映射类型),键必须是独一无二,如果键发生冲突,以最后一个为准(可哈希对象才可以当作键,因为查找是是把键做了个哈希表进行查找, 所以速度非常快,字典本身是不可哈希...,不能拿字典本身来当键,字典嵌套字典时候,内部字典可以当作值来用而不可以当作值来用)而字典值无需如此。...) >>> dict.items (把D键值,实现将字典转换为元组列表方式) 注:每一项都被拆成了一个元组,这些元组合起来组成一个列表 >>> dict = {'x':1,'y':2} >>>...dict.popitem() ('f', 6) >>> dict.popitem() ('e', 5) >>> dict.popitem() ('d', 4) >>> dict.update (将一个字典合并到当前字典

    2.1K20

    python字典统计元素出现次数简单应用

    如果需要统计一段文本每个词语出现次数,需要怎么做呢? 这里就要用到字典类型了,字典构成“元素:出现次数”健值对,非常适合“统计元素次数”这样问题。...下面就用一道例题,简单学习一下: 列表 ls 存储了我国 39 所 985 高校所对应学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型数量。...: 1、构建一个空字典 想要构成“元素:出现次数”健值对,那首先肯定就是要先生成一个空字典。...添加元素,用word代表字典“健”,就是那些Is里那些词: d[word] = (心里活动:等。。...喜大普奔~~~~~ 如果wordIs里接下来取到词不是“综合”,那就是重复以上步骤; 如果取到词还是“综合”,因为健值对'综合':'1'已经字典里了,所以d.get(word, 0) 结果,就不是

    5.7K40

    python字典排序(Ordered

    , 指定是否颠倒,即是否逆序,默认是正序, 可以省略 2 使用 sorted 对字典排序,注意字典键key值都是同类型 test = {1: "a", 3: "d", 6: "g", 2: "c"..., 5: "e", 0: "f", 4: 'b'} # 对字典key值列表排序,返回列表 print(sorted(test.keys())) # 对字典键值对元组列表排序,按元组第1个元素排序,...也就是 key # 返回是一个元组列表 print(sorted(test.items(), key=lambda obj: obj[0])) # 对字典键值对元组列表排序,按元组第2个元素排序,..."""对字典按key排序, 默认升序, 不修改原先字典"""     # 先获得排序后key列表     keys = sorted(old_dict.keys(), reverse=reverse)...new_dict = {} 这样创建就是一个普通字典,虽然之前已经对key或value排好序了,但是插入时候还是无序,所以没作用。

    2.5K30

    python字典与集合

    今天我们继续聊聊 python 另外两个数据类型字典和集合。 字典 首先字典是可变类型,和列表一样也是储存多种类型数据。但它是无序所以不可用下标去访问,通常我们会以「健值对」方式去表示。...: 18, "height": 180, "tag": ['高', '穷', '帅'] } 访问字典 我们都知道列表访问是利用索引访问。...字典利用健访问即可。 info[name] #六小登登 info[age] #18 修改和添加 修改字典元素是利用「健」访问然后重新赋值即可,添加元素是添加新「健」即可。...利用 clear() 方法清空字典 info = {'age': 18, 'name': '六小登登'} info.clear() print(info)#{} 字典 keys方法,values方法,...set1 = {'java', 'javascript', 'python'} for item in set1: print(item) # javascript # python # java

    1.5K20

    Python字典与集合

    今天我们来讲一讲python字典与集合 Dictionary:字典     Set:集合 字典语法: Dictionary字典(键值对) 语法: dictionary = {key:value,...集合名 valueN:值 下面我们创建一个集合 stus = ["巩祎鹏","王佳明","张倩","李宁风"] 之后我们根据索引(下标)输出对应值   (索引/下标,类似于字典键,只不过索引是固定系统默认好..., 索引从0开始逐个晚上叠加,同时字典也对应着相应值, 不过如果下标集合相对应没有值,那么就会出现报错:索引越界)  输出索引为0对应值 print(stus[0]) 输出结果如下: 巩祎鹏...》 《第二章python开发环境与开发教程》 《第三章python函数基本定义和调用以及内置函数》 《第四章python声明,使用,属性,实例属性,计算属性及继承,重写》 《第五章python字符串...String基本内置函数与过滤字符串模块函数基本用法》 《第六章python字典与集合》 我觉得讲也差不多了,python基础也就这么多了.后续都是爬虫,人工智能,与大数据一些相关问题了,

    1.7K30

    继续说说Python字典

    上次字典没学完,今天接着和园友来探讨。 上一期我们字典,是用常量初始化。...再说一下字典打印,很简单,直接打印字典就好了: age =10 mes_dict = {'name':'艾米','age':age} print(mes_dict) 打印出结果就是{'name':...'艾米', 'age': 10} 好了,字典基本操作已经说得差不多了。...给大家一个小题目,如何用字典做出“Python代码使用手册”? 要求: 1 用户输入python基本关键字,比如“if”“for”“def”等。 2 打印出对应对该代码解释。...提示: 可以参考前一篇字典常用方法。 复习if-else 语句式 先思考…… 先思考…… 往下翻需谨慎…… 代码公布分割线 python_dict = {'print':'打印你想打印信息。'

    1.1K80

    Python字典及其应用

    二.分析字典特征(跟元组和列表比较) -字典不能索引和切片,因为字典是无序数据类型; -字典不支持重复和连接; -字典支持成员操作符: 判断字典key值是否字典存在; in, not in 三...)通过字典名[key]=value,将key-value添加到字典 In [10]: service = {'ftp':[20,21]} In [11]: service['http'] = [80,8080...五.字典应用 应用1: 通过字典实现case语句 -目前python不支持case语句; -实现case语句两种方式: -if...elif...elif...else... -字典实现 #!.../usr/bin/env python #coding:utf-8 """ # 实现四则运算 # - 用户分别输入第一个数字,运算操作符,第三个数字; # - 根据用户运算操作打印出运算结果; # "...-3.注销用户 用户注销时,需要输入用户名和正确用户密码 -4.显示用户信息 显示系统存在所有已经注册用户信息; -5.退出系统。

    1.1K10

    Python字典详细用法

    #字典 #字典Python唯一内建映射类型。...字典没有特殊顺序,但都是存储一个特定键(key)下面,键可以是数字,字符串,甚至是元组 #一、字典使用 #某些情况下,字典比列表更加适用: #1、表示一个游戏棋盘状态,每个键都是由坐标值组成元组...#创建一个字典,字典由多个键与其对应构建键-值对组成,中间由冒号隔开,项之间用逗号隔开,字典由大括号括起来。...,键可以是任意不可变类型,比如浮点类型(实型)、字符串或者元租 # 自动添加:即使键起初字典并不存在,也可以为它赋值,字典就会建立新项。...#字典检查键成员资格比列表检查值成员资格更高,数据结构规模越大,俩者效率差距越明显 #字典示例 #一个简单数据库 #字典使用人名作为键值。

    91810
    领券