重拾python-3

字典
键值对的无序可变序列,每个元素包含“键对象”和“值对象”。键是任意不可变对象(列表),不可重复,值是任意数据,可重复,可以是列表等。

字典的创建
1.通过{}、dict()创建字典对象
a={‘name’:‘杨’,‘age’:19}
b = dict(name=‘杨’,age=20,job=‘student’)
a=dict([(“name”,“杨”),(“age”,19)])
2.通过zip()创建字典对象

>>> a=['name','age','job']
>>> b=['Tom',23,'teacher']
>>> d=dict(zip(a,b))
>>> d
{'name': 'Tom', 'age': 23, 'job': 'teacher'}

3.通过fromekys创建值为空的字典

>>> a = dict.fromkeys(['name','age','job'])
>>> a
{'name': None, 'age': None, 'job': None}

字典元素的访问
1.通过键
2.通过get()方法,推荐使用,若键不存在,默认返回None

>>> a={'name':'杨','age':19}
>>> a['name']
'杨'
>>> a['job']
Traceback (most recent call last):
  File "<pyshell#132>", line 1, in <module>
    a['job']
KeyError: 'job'
>>> a.get('age')
19
>>> a.get('sex','男')
'男'

3.列出所有键值对

>>> a.items()
dict_items([('name', '杨'), ('age', 19)])
>>> a.keys()
dict_keys(['name', 'age'])
>>> a.values()
dict_values(['杨', 19])
>>> len(a) #有多少键值对
2
>>> 'name' in a #某个键是否在字典中
True
>>> 'job' in a
False

字典元素的添加、修改、删除

  1. a[‘address’]=‘北京’ 若键存在则覆盖
    2.update()将新字典所有键值对全部加到旧字典上,如有key重复,则覆盖
    a={。。。}
    b={。。。}
    a.uodate(b)

3.字典中元素的删除
del(a[‘name’])
b=a.pop(‘age’) #删除age,返回age
clear()#删除所有键值对
4.popitem():随机删除和返回键值对。字典是无序可变序列,没有第一个、最后一个元素的费奶奶;popitem弹出随机地项,因为字典中没有“最后的元素”或者有关顺序的概念,若想一个接一个地移除并处理项,该方法就非常有效,因为不用首先获取键值的列表。

序列解包
序列解包可用于元祖、列表、字典。序列解包让我们更方便地对多个变量赋值
x,y,z = (20,30,10)
(x,y,z)=(1,2,3)

序列解包用于字典:

>>> a={'name':'杨','age':19}
>>>> x,y = a
>>> x
'name'
>>> y
'age'
>>> u,v=a.values()
>>> u
'杨'
>>> v
19

表格数据使用字典和列表存储,并实现访问

r1 = {'name':'李四','age':19,'address':'北京'}
r2 = {'name':'王五','age':25,'address':'重庆'}
r3 = {'name':'张三','age':22,'address':'成都'}
tb = [r1,r2,r3]

#获得第二行的人的年龄
#print(tb[1].get('age'))

#打印表中所有地址
#for i in range(3):
#    print(tb[i].get('address'))

#打印所有元素
for i in range(3):
    print(tb[i].get('name'),tb[i].get('age'),tb[i].get('address'))

字典核心底层原理(重要)
字典的核心是散列
在这里插入图片描述
根据键查找“键值对”的底层过程
根据key查找到“键值对”,从而找到value
在这里插入图片描述

用法总结:

  1. 键必须可散列(数字、字符串、元祖)
  2. 字典在内存中开销巨大,典型的空间换时间
  3. 键值查询速度很快
  4. 往字典里面添加新建可能导致扩容,导致散列表中键的次序发生变化。因此不要在遍历字典的同时进行字典的修改。

集合
无序、可变、元素不重复。底层实现是就是字典,集合的所有元素都是字典中的key对象,因此不重复,唯一。

集合的创建和删除

  1. 使用{}创建集合对象,并使用add()添加元素。a={1,2} a.add(3)
  2. 使用set()将元祖、列表等可迭代的对象转成集合。a=[‘a’,‘b’,‘a’] b=set(a)
  3. remove()删除指定元素,clear()清空整个集合。
    集合的相关操作
    交:& 或intersection()
    并:| 或union()
    差:- 或 difference()

控制语句
三元条件运算符
条件为真时的值 if (条件表达式)else 条件为假的值
s = input(“请输入一个数字”)
print(“a是小于10的数字” if int(s)<10 else “s是大于10的数字”)

多分支结构
if
elif
.
.
.
else

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值