python_字典相关知识点

字典

定义

  • 键值对:
    • 键key就是值value的标致,一个键对应一个值
    • key的值不可以重复,value的值可以重复
    • key的数据类型只能是不可变数据类型,value的数据类型可以是任意的数据类型
  • 元素是键值对的集合就是字典,键值对之间没有顺序且不可重复

创建字典

语法模板:name = {key: value, key: value,…}

  • 键和值之间用冒号连接
  • 通过花括号来创建字典
  • 空字典:name = {}
  • 还有一种创建字典的方法(不常用)
    • name = dict() #创建一个空字典
    • name = dict([(key, value), (key, value), …]) #用以元组列表形式表示的数据来定义一个字典
# 语法模板:name = {key: value, key: value,...}

# - 键和值之间用冒号连接
# - 通过花括号来创建字典
dict_01 = {"name": " 小明",
           "age": 18}
print(dict_01)
# - 空字典:name = {}
empty_dict = {}
print(empty_dict)
# - 还有一种创建字典的方法(不常用)
#   - name = dict() #创建一个空字典
dict_02 = dict()
print(dict_02)
#   - name = dict([(key, value), (key, value), ...]) #用以元组列表形式表示的数据来定义一个字典
my_list = [("name", "zhangsan"), ("address", "hubei"), ("age", 18)]
dict_03 = dict(my_list)
print(dict_03)
输出:
{'name': ' 小明', 'age': 18}
{}
{}
{'name': 'zhangsan', 'address': 'hubei', 'age': 18}

字典的操作函数

  • len(),返回字典d中的个数
  • min(),返回字典d中键的最小值
  • max(),返回字典d中键的最大值
# len(),返回字典d中的个数
my_dict = {"name": "小明",
           "number": 123456,
           "sex": True,
           "age": 15}
print(len(my_dict))
# min(),返回字典d中键的最小值
print(min(my_dict))

# max(),返回字典d中键的最大值
print(max(my_dict))
输出
4
age
sex

字典的操作方法

  • 取:

    • dict[key]
    • dict.get[key,default] 若key存在则返回相关联的值,否则返回一个default,default默认值为none
  • 改/增:dict[key] = value

    注意:如果字典中存在key,value会覆盖原来的值。如果key不存在,则相当于往字典中添加一个新的键值对

  • 删:

    • dict.pop(key) 返回关联的值,然后删除该键值对
    • dic.popitem() 随机从字典中取出一个键值对,以元组(key,value)形式返回,同时将该键值对从字典中删除
    • del关键字:del dict[key] 删除指定的键值对
    • dict.clear() 清空字典
  • 合并字典:dict.update(dict2) 如果存在相同的键,则替换

  • dict.keys()/values() 以序列的形式来返回字典中的所有的key/value

  • 字典转换

    • str(dict)转换成字符串
    • dict.items()转换成元组序列
  • 判断键值对是否在字典中

    • key in dict 若key存在,则返回True
    • key not in dict 若key不存在,则返回True
#  取:dict[key]
my_dict = {"name": "小明",
           "number": 123456,
           "sex": True,
           "age": 15}
print(my_dict["name"])
print(my_dict["number"])

# - 改/增:dict[key] = value
#   注意:如果字典中存在key,value会覆盖原来的值。如果key不存在,则相当于往字典中添加一个新的键值对
my_dict["name"] = "张三"
my_dict[1] = 2
print(my_dict)

# - 删:
#   - dict.pop(key)    返回关联的值,然后删除该键值对
s = my_dict.pop("age")
print(s)
print(my_dict)
#   - del关键字:del dict[key] 删除指定的键值对
del my_dict["name"]
print(my_dict)
#   - dict.clear() 清空字典
my_dict.clear()
print(my_dict)
# - 合并字典:dict.update(dict2)   如果存在相同的键,则替换
my_dict01 = {"name": "王五",
             "number": 123456,
             "sex": True,
             "age": 15}
my_dict.update(my_dict01)
print(my_dict)

# - dict.keys()/values()  以序列的形式来返回字典中的所有的key/value
print(my_dict.keys())
print(my_dict.values())
# - 字典转换
#   - str(dict)转换成字符串
ss = str(my_dict)
print(type(ss), "--->", ss)

#   - dict.items()转换成元组序列
print(my_dict.items())
# - 判断键值对是否在字典中

#   - key in dict  若key存在,则返回True
print("name" in my_dict)
#   - key not in dict 若key不存在,则返回True
print("name" not in my_dict)
输出:
小明
123456
{'name': '张三', 'number': 123456, 'sex': True, 'age': 15, 1: 2}
15
{'name': '张三', 'number': 123456, 'sex': True, 1: 2}
{'number': 123456, 'sex': True, 1: 2}
{}
{'name': '王五', 'number': 123456, 'sex': True, 'age': 15}
dict_keys(['name', 'number', 'sex', 'age'])
dict_values(['王五', 123456, True, 15])
<class 'str'> ---> {'name': '王五', 'number': 123456, 'sex': True, 'age': 15}
dict_items([('name', '王五'), ('number', 123456), ('sex', True), ('age', 15)])
True
False

字典的遍历

  • for name in dict:

    ​ 操作语句

  • for k, v in dict.items():

    ​ 操作语句

my_dict = {"name": "小明",
           "number": 123456,
           "sex": True,
           "age": 15}
# 字典的遍历
for key in my_dict:
    print(key, "---->", my_dict[key])

print("-"*50)
for k, v in my_dict.items():
    print(k, "--->>", v)
输出:
name ----> 小明
number ----> 123456
sex ----> True
age ----> 15
--------------------------------------------------
name --->> 小明
number --->> 123456
sex --->> True
age --->> 15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值