Python基础—字典

字典

一、字典的性质

1.字典是可变的容器型数据类型。(增删改)

2.Python3.6之前字典是无序的容器型数据类型;

Python3.6之后字典是有序的容器型数据类型(虽然字典是有序的,但是没有下标)**

3.字典中的元素是以键值对(Key:value)形式存在的。

字典中的键必须是不可变的数据类型,键是解释说明的作用。

字典中的值是可以任意数据,值是最终想要的数据。

字典以{}作为容器符号,元素使用逗号分隔,数据类型dict

二、字典不支持拼接、重复等操作

三、成员运算:字典的成员运算是判断某个键在或者不在字典中

四、循环遍历

for i in stu4:
    print(i)

除非有特殊说明,否则对字典做的操作都是针对于键的操作。

五、字典中的相关方法

dict1 = {'name':'张三', 'qq':'100001', 'tel':'10086'}

1.keys:获取字典中所有的键,返回一个容器

print(dict1.keys())
for i in dict1.keys():
    print(i)

运行结果:dict_keys(['name', 'qq', 'tel'])
         name
         qq
         tel

2.values:获取字典中所有的值,返回一个容器

print(dict1.values())
for i in dict1.values():
    print(i)

运行结果:dict_values(['张三', '100001', '10086'])
         张三
         100001
         10086

3.items:获取字典中所有的键值对,返回一个容器

print(dict1.items())
for i in dict1.items():
    print(i)

运行结果:dict_items([('name', '张三'), ('qq', '100001'), ('tel', '10086')])
         ('name', '张三')
         ('qq', '100001')
         ('tel', '10086')

# 解包操作:在dict1中是二元组,对items进行解包
for keys,values in dict1.items():
    print(f'{keys} ---> {values}')

运行结果:name ---> 张三
         qq ---> 100001
         tel ---> 10086

4.sum、max、min、sorted、len等方法,都可以用作字典,但是操作对象都是字典中的键(keys)

5.dict():将指定数据转化为字典

a.数据本身是容器

b.容器中的元素还必须是一个容器

c.容器中的容器必须只有两个元素

d.这两个元素的第一个元素必须是不可变数据类型

list1 = [[1,2], ('name','张三'), 'ab']
print(dict(list1))

运行结果:{1: 2, 'name': '张三', 'a': 'b'}

六、字典的增删改查

dict1 = {}
print(dict1,type(dict1))

运行结果:{} <class 'dict'>

1.字典中添加元素

一、直接添加:如果字典中不存在某个键,那么直接添加能将这个键值对添加进去

dict1['name'] = '张三'
print(dict1)

运行结果:{'name': '张三'}

二、setdefault:向字典中添加键值对,如果这个键已经存在,不做修改;如果不存在,就添加到字典中

dict1.setdefault('name','李四')
dict1.setdefault('age', 66)
print(dict1)

运行结果:{'name': '张三', 'age': 66}

三、update - 更新字典中的元素

a.传入一个字典

dict1.update({'address':'地球村','sex':'男'})
print(dict1)

运行结果:{'name': '张三', 'age': 66, 'address': '地球村', 'sex': '男'}

b.传入关键字,可以在update方法中传入key=value

dict1.update(english=66)
print(dict1)

运行结果:{'name': '张三', 'age': 66, 'address': '地球村', 'sex': '男', 'english': 66}

c.传入一个包含一个或者多个二元组的列表

dict1.update([('math',0), ('chinese',100)])
print(dict1)

运行结果:{'name': '张三', 'age': 66, 'address': '地球村', 'sex': '男', 'english': 66, 'math': 0, 'chinese': 100}

四、字典中元素的查找:通过键获取值(确保键是存在的)

print(dict1['name'])

运行结果:张三

五、字典的修改,如果字典中已经存在某个键,这种写法是修改这个键对应的值

dict1['name'] = '法外狂徒张三'
print(dict1)

运行结果:{'name': '法外狂徒张三', 'age': 66, 'address': '地球村', 'sex': '男', 'english': 66, 'math': 0, 'chinese': 100}

六、使用update修改对应的值,确保这个键是存在的,否则是向字典中添加元素

dict1.update({'age':10})
print(dict1)

运行结果:{'name': '法外狂徒张三', 'age': 10, 'address': '地球村', 'sex': '男', 'english': 66, 'math': 0, 'chinese': 100}

七、删除操作

a.del 字典[‘键’]:删除字典中指定键对应的键值对(如果键不存在,报错)

del dict1['sex']
print(dict1)

运行结果:{'name': '法外狂徒张三', 'age': 10, 'address': '地球村', 'english': 66, 'math': 0, 'chinese': 100}

b.字典.pop(键):从字典中删除指定的键值对,返回删除的key对应的值

result = dict1.pop('english')
print(result)
print(dict1)

运行结果:66
         {'name': '法外狂徒张三', 'age': 10, 'address': '地球村', 'math': 0, 'chinese': 100}

c.clear:清空字典

八、推导式

不仅仅列表有推导式,元组、集合、字典也有。

从列表推导式,换个容器符号就是元组、集合推导式写法。

字典推导式不仅需要换容器符号,还需要换添加元素的表达式,需要构造成key:value的形式。

例如:九九乘法表

dict2 = {f'{i} * {j}':i * j for i in range(1, 10) for j in range(1, i + 1)}
print(dict2)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

㤅uu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值