前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础——字典【特点,定义,引用操作,pop,clear,keys,items】

python基础——字典【特点,定义,引用操作,pop,clear,keys,items】

作者头像
用户11029137
发布2024-03-24 10:46:48
1130
发布2024-03-24 10:46:48
举报
文章被收录于专栏:编程学习编程学习

一,字典的特点及其定义

1,字典的特点:

1,可以容纳多个数据,并且数据的类型可以不同 2,每一份数据都是以key-value键值对的形式存在(这就是键值对映射) 3,可以通过key获得value 4,不是序列,不支持下标索引 5,可以修改

2,字典的定义

字典的定义使用花括号 {},其中的键和值用冒号 : 分隔。 和值可以是任何类型的对象,例如整数、浮点数、字符串、列表、元组或另一个字典。 但是,字典的键必须是不可变的,类似列表或者字典这种可变的就不能做字典的键

示例:

代码语言:javascript
复制
# 定义一个包含三组键值对的字典
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 定义空字典
my_dict = {}  # 方式一
my_dict = set()  # 方式二

# 定义嵌套字典 (即键的值对应的又是字典)
nested_dict = {
    "colors": {
        "red": "#FF0000",
        "green": "#00FF00",
        "blue": "#0000FF"
    },
    "shapes": {
        "circle": "⚪",
        "square": "⚫",
        "triangle": "⚓"
    }
}
# 在这个示例中,nested_dict 是一个包含两个子字典的嵌套字典。
# 子字典 "colors" 的键是颜色,子字典 "shapes" 的键是形状。每个子字典中都包含一些值。

二,字典的引用

字典不可以通过下标索引来获取值,但是可以通过key来获取 语法:

代码语言:javascript
复制
字典[键]

示例(使用上面创造的嵌套字典):

代码语言:javascript
复制
nested_dict = {
    "colors": {
        "red": "#FF0000",
        "green": "#00FF00",
        "blue": "#0000FF"
    },
    "shapes": {
        "circle": "⚪",
        "square": "⚫",
        "triangle": "⚓"
    }
}

# 取colors这个键对应的值:
print(nested_dict["colors"])

# 要取内层字典colors里面的red对应的值:
print(nested_dict["colors"]["red"])  # 这种写法类似取嵌套的列表里面的值

输出结果:

(可见:colors是嵌套的内层字典)

三,字典的常用操作

1,修改字典中key所对应的值

语法:

代码语言:javascript
复制
字典[key] = value # 这个就类似我们修改列表对应下标的元素

需要注意的是:当key不存在的时候,字典会自动添加一个新的键值对 (而在列表里面,当访问不存在的下标时,即越界,则会报错)

示例:

代码语言:javascript
复制
# 创建成员字典,假设每个键值对是成员和他们对应的年龄
member_dict = {"小红":21, "小黄":17, "小绿":35}

# 修改小红的年龄
member_dict["小红"] = 24

# 添加一个小黑,对应41岁
member_dict["小黑"] = 41

# 打印修改和添加完以后的字典
print(member_dict)

输出结果:

可见:小红被修改了;小黑被添加了

2,删除和清空元素(pop、clear)

(1)删除元素(直接修改原字典) pop() 方法是字典的一个内置方法,用于删除字典中指定的键所对应的值,并且返回那个值。 但是👇🏻 1,如果不指定键,则会删除字典中的最后一个键值对,并返回该值。 2,如果没有找到指定的键,则抛出KeyError异常。

下面是使用pop的示例:

代码语言:javascript
复制
# 假设有一个字典叫做 dict
dict = {'a': 1, 'b': 2, 'c': 3}

# 删除键 'a' 对应的值,并返回这个值
value = dict.pop('a')
# 此时 dict 变成了 {'b': 2, 'c': 3}

# 如果不指定键,则删除并返回最后一个键值对
value = dict.pop()
# 此时 dict 变成了 {'b': 2}

# 如果删除的键不存在,则会抛出 KeyError,如:
# value = dict.pop('d')  # 这会抛出 KeyError,因为 'd' 键不存在

对于键不存在的时候,还有第二种情况: pop() 方法还可以接收一个默认值作为参数,如果指定的键不存在,则返回这个默认值,而不是抛出异常

代码语言:javascript
复制
dict = {'a': 1, 'b': 2, 'c': 3}
# 删除键 'd',如果没有找到则返回默认值 0
default_value = dict.pop('d', 0)
# 此时 dict 保持不变,因为没有找到键 'd',default_value会接收到被设置的默认返回值0

(2)清空元素 clear()方法同样可以用来清空字典 示例:

代码语言:javascript
复制
member_dict = {"小红":21, "小黄":17, "小绿":35}
# 清空字典
member_dict.clear()
print(member_dict)  # 输出 {}

3,获得全部的键(keys())

字典中的keys()方法可以用来获取这个字典里面全部的键,返回的是一个dict_keys对象 语法:

代码语言:javascript
复制
字典.keys()  # 注意括号不能漏

示例:

代码语言:javascript
复制
member_dict = {"小红":21, "小黄":17, "小绿":35}
all_keys = member_dict.keys()
print(all_keys)  # 输出 dict_keys(['小红', '小黄', '小绿'])

# 将keys()结合for循环来使用,可以实现遍历字典的每一个键
for key in member_dict.keys():
    print(key)  # 输出 小红 小黄 小绿 

# 也可以直接使用for来遍历字典中的每一个键
for key in member_dict:
    print(key, end=" ")  # 输出 小红 小黄 小绿 

4,获取所有键值对(items())

items() 方法是字典对象的一个内置方法,用于返回一个包含所有字典键值对的可迭代对象dict_items(它和dict_keys都不是普通的列表)。 每个元素是一个键值对组成的元组(key, value)。

下面是 items() 方法的一些基本用法:

代码语言:javascript
复制
# 使用 items() 方法获取字典中所有键值对的列表
dict = {'a': 1, 'b': 2, 'c': 3}
items = dict.items()
print(items)  # 输出dict_items([('a', 1), ('b', 2), ('c', 3)])

# 我们同样可以使用for循环去遍历它:
for i in items:
    print(i, end=" ")
    # 输出 ('a', 1) ('b', 2) ('c', 3) 

四,总结


🌈我的分享也就到此结束啦🌈 要是我的分享也能对你的学习起到帮助,那简直是太酷啦! 若有不足,还请大家多多指正,我们一起学习交流! 📢公主,王子:点赞👍→收藏⭐→关注🔍 感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,字典的特点及其定义
    • 1,字典的特点:
      • 2,字典的定义
      • 二,字典的引用
      • 三,字典的常用操作
        • 1,修改字典中key所对应的值
          • 2,删除和清空元素(pop、clear)
            • 3,获得全部的键(keys())
              • 4,获取所有键值对(items())
              • 四,总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档