字典介绍

字典介绍

一,列表的缺点

当我们储存的数据要动态添加,删除的时候,我们一般使用列表,但是列表有的时候会遇到一些麻烦。

# 定义一个列表保存,姓名、性别、职业
nameList = ['xiaoZhang', '男', '木匠'];

# 当修改职业的时候,需要记忆元素的下标
nameList[2] = '铁匠'  

# 如果列表的顺序发生了变化,添加年龄
nameList = ['xiaoWang', 18, '男',  '铁匠']

# 此时就需要记忆新的下标,才能完成名字的修改
nameList[3] = 'xiaoxiaoWang'

而字典就能正好完美的解决这个缺点

二,字典的基本使用

字典的格式为 {键1:值1,键2:值2,键3:值3,…,键n:值n,}

例如:

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国上海'}
info['name']  # 字典使用键来获取对应的值

说明:

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的;字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘id’、‘sex’)
  • 字典的每个元素由2部分组成,键:值。例如 ‘name’:‘班长’ ,'name’为键,'班长’为值
  • 键可以使用数字、布尔值、布尔值、元组等不可变数据类型,但是一般习惯使用字符串
  • 每个字典里的key都是唯一的,如果出现了多个key,后面的value会覆盖前一个key对应的value.

在习惯上:

  • 列表更适合保存多个商品、多个姓名、多个时间,这样的相似数据;
  • 字典更适合保存一个商品的不同信息、一个人的不同信息,这样的不同数据。
# {}
# 元素是键值对  key:value  键、值之间 用:
#键值对之间 用,隔开
#键 必须是不可变类型
#值 可以是任意类型  字符串、数值、列表、元组\集合\布尔等
shiyang = {
    'username':'shiyang',
    'height':'181cm',
    'sex':'male',
    'age':18,
    (1,2):'666',# 不会报错键最好有意义
    # [1,2,3]:999 键不能是可变类型
    4:69, # 不会报错键最好有意义
    # 'sex':'female', #key不能重复  不会报错但是后边的会覆盖前面的 开发过程中不要重复
}

print(shiyang)

三,字典的增删改查

1,查,查看元素
shiyang = {
    'username':'shiyang',
    'height':'181cm',
    'sex':'male',
    'age':18
}

# print(shiyang['username']) #shiyang
# print(shiyang['beauty']) #如果查找的键不存在  一定会报错
# print(shiyang.get('username')) #shiyang
# print(shiyang.get('beauty')) #None如果查找的键不存在 不报错 返回None
# print(shiyang.get('username','height')) #查找多个key 不报错 返回第一个
# print(shiyang.get('beauty'))

# print(shiyang.get('beauty','fanbingbing')) #fanbingbing  beauty不存在 设置了一个值
# #原本返回None 我们自己让他返回 fanbingbing
# print(shiyang.get('username','minrui')) #shiyang 本身username 存在  所以返回的 原来的值
# # 不返回自己设置的值

test = 'username'
print(shiyang[test]) #shiyang
# print(shiyang['test']) #报错
除了使用可以寻找数据之外还可以使用get来获取想要的数据
info = {'name':'班长','age':18}

print(info['age']) # 获取年龄
# print(info['sex']) # 获取不存在的key,会发生异常

print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常
print(info.get('sex''男'))  # 获取不存在的key, 可以提供一个默认值。

重要的事情说三遍!!!

注意,获取默认值并不会修改字典的内容。

注意,获取默认值并不会修改字典的内容。

注意,获取默认值并不会修改字典的内容。

2,改,修改元素

字典不像元组,字典的每一个元素中的数据都是可以进行修改的只要通过key值找到了,都可以进行修改

info = {'name':'班长', 'id':100}

print('修改之前的字典为 %s:' % info)

info['id'] = 200  # 为已存在的键赋值就是修改

print('修改之后的字典为 %s:' % info)

输出之后的结果为

修改之前的字典为 {'name': '班长', 'id': 100}
修改之后的字典为 {'name': '班长', 'id': 200}

3,增,增加元素

如果在使用 变量名[‘键’] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

info = {'name':'班长'}

print('添加之前的字典为:%s' % info)

info['id'] = 100  # 为不存在的键赋值就是添加元素

print('添加之后的字典为:%s' % info)

输出后的结果为

添加之前的字典为:{'name': '班长'}
添加之后的字典为:{'name': '班长', 'id': 100}

4、删,删除元素

对字典进行删除操作,有一下几种:

  • del
  • clear()

demo:del删除指定的元素

info = {'name':'班长', 'id':100}

print('删除前,%s' % info)

del info['name']  # del 可以通过键删除字典里的指定元素

print('删除后,%s' % info)
Copy

结果

删除前,{'name': '班长', 'id': 100}
删除后,{'id': 100}
Copy

del删除整个字典

info = {'name':'monitor', 'id':100}

print('删除前,%s'%info)

del info  # del 也可以直接删除变量

print('删除后,%s'%info)
Copy

结果

删除前,{'name': 'monitor', 'id': 100}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'info' is not defined
Copy

clear清空整个字典

info = {'name':'monitor', 'id':100}

print('清空前,%s'%info)

info.clear()

print('清空后,%s'%info)
Copy

结果

清空前,{'name': 'monitor', 'id': 100}
清空后,{}
shiyang = {
    'username':'shiyang',
    'height':'181cm',
    'sex':'male',
    'age':18
}

# # shiyang['username'] = 'yangyang' #跟列表差不多 列表[]里边是下标值   字典是键的值
# shiyang['jiguan'] = '黄冈' # jiguan这个key 不存在  那么会加到字典的结尾
# print(shiyang) #{'username': 'shiyang', 'height': '181cm', 'sex': 'male', 'age': 18, 'jiguan': '黄冈'}



# pop
# test = shiyang.pop('age')
# print(test) #返回 age 这个键对应的值
# print(shiyang) #'age':18 这个键值对就被删除了


# res = shiyang.popitem() #返回的是 字典最有一个键值对组成的 元组
# print(res) #('age', 18)
# print(shiyang)

# del shiyang['age'] #删除 键 age对应的键值对
# print(shiyang)

# shiyang.clear() #清空字典
# print(shiyang)

# test = 'age'
# del shiyang[test]
# print(shiyang)

四,遍历字典

shiyang = {
    'username':'shiyang',
    'height':'181cm',
    'sex':'male',
    'age':18
}
#第一种方式
# for x in  shiyang:
#     print(x,':',shiyang[x]) #获取的每个键

#第二种方式 获取所有的key  然后遍历key  根据key获取指定的value
# print(shiyang.keys()) #返回字典所有的key dict_keys(['username', 'height', 'sex', 'age'])
# for x in shiyang.keys():
#     print(x, ':', shiyang[x])

#第三种方式  获取所有的value值   但是不能拿到 key
# print(shiyang.values()) #dict_values(['shiyang', '181cm', 'male', 18]) 列表
#
# for x in  shiyang.values():
#     print(x)

#第四种方式  既有键 又有值

print(shiyang.items())#dict_items([('username', 'shiyang'), ('height', '181cm'), ('sex', 'male'), ('age', 18)])
#列表 元素是 元组

# for x in shiyang.items():
#     print(x[0],"=",x[1])

for key,value in shiyang.items():
    print(key,'=',value)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 字典(Dictionary)是一种可变、无序的键值对(key-value)集合。它的实现原理类似于哈希表,可以高效地进行元素的查找和插入操作。 Python 字典的基础用法包括以下几个方面: 1. 创建字典:可以使用花括号 {} 或者 dict() 函数来创建一个字典,例如: ``` # 使用花括号创建字典 my_dict = {"apple": 2, "banana": 3, "orange": 4} # 使用 dict() 函数创建字典 my_dict = dict(apple=2, banana=3, orange=4) ``` 2. 访问元素:可以通过键来访问字典中的元素,例如: ``` my_dict = {"apple": 2, "banana": 3, "orange": 4} print(my_dict["apple"]) # 输出 2 ``` 如果访问的键不存在,会抛出 KeyError 异常。 3. 添加或修改元素:可以通过键来添加或修改字典中的元素,例如: ``` my_dict = {"apple": 2, "banana": 3, "orange": 4} my_dict["pear"] = 5 # 添加元素 my_dict["apple"] = 1 # 修改元素 print(my_dict) # 输出 {"apple": 1, "banana": 3, "orange": 4, "pear": 5} ``` 4. 删除元素:可以使用 del 关键字来删除字典中的元素,例如: ``` my_dict = {"apple": 2, "banana": 3, "orange": 4} del my_dict["banana"] print(my_dict) # 输出 {"apple": 2, "orange": 4} ``` 5. 遍历字典:可以使用 for 循环来遍历字典中的所有元素,例如: ``` my_dict = {"apple": 2, "banana": 3, "orange": 4} for key in my_dict: print(key, my_dict[key]) ``` 还可以使用 items() 方法来同时遍历字典中的键和值,例如: ``` my_dict = {"apple": 2, "banana": 3, "orange": 4} for key, value in my_dict.items(): print(key, value) ``` 以上就是 Python 字典的基础用法,需要注意的是,字典中的键必须是不可变类型(例如字符串、数字、元组等),而值可以是任意类型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值