基础第八讲—元组与字典

本文介绍了Python中的元组和字典基础概念。元组是不可变序列,创建时需注意区分元组与非元组,可通过解包赋值。字典是一种映射数据结构,用于快速查询,其键必须是不可变对象。文章讲解了字典的创建、键值获取、修改、删除等操作,并提到了浅复制的概念。

一、元组 (tuple)

定义:不可变序列,用法与列表差不多,但是不能修改

元组的创建

bun = ()

  1. 元组与列表用法雷同,但添加、删除元素不行

  2. 不能对元组进行重修赋值

  3. 如果不是空的元组,至少添加一个逗号(10 是整型,但是 10,是元组)

  4. 可以放字符串与数字一起

元组的解包

指将一个元组的每一个元素都赋值给一个变量,但是变量与元素的个数必须一致,若不一致时 可在元素前面添加一个“*”来收集剩下的元素,以列表形式返回(取前面,中间也可以,但是只能在一个元素前添加*,两个元素不能)

my_tuple = 10, 20, 30, 40
a, *b, c = my_tuple
print('a =', a)
print('b =', b)
print('c =', c)
执行结果:
a = 10
b = [20, 30]
c = 40

二、可变对象(就可改变里面的值)

每个对象当中保存了3个东西

  1. id(标识)
  2. value(值)
  3. type(类型)
id不变
a  [123]
a[0]  10 

(改对象,其实就是值)这个操作是通过改变对象里面的值,不会改变变量指向的对象

id变
a  [456] 

(改变量这个操作是给变量重新赋值,改变变量所指向的对象

在这里插入图片描述

三、== 和 is(返回bool值)

==和!=是比较两个对象的值是否相等
is 和 is not 是比较两个对象的id值是否相等

字典

一、字典简介

①字典是一种新的数据结构,称之为映射(mapping)
②作用是储存对象的容器
③列表储存数据性能很好,但查询数据性能差
④字典中每一个元素都有唯一的名字,通过这个名字可以快速的查找到指定的元素
⑤唯一的名字称为键(key)通过key可以查找到值(value)称之为值
⑥所以字典叫键值,称之为(key-value)一个键值就是一个项

创建字典

使用{}来创建 语法: {key:value,key:value……}

在字典中键和值可以是哪些内容呢? ①值是可以任意对象 ②键是任意不可变对象 (int,str,bool,tuple……) 字典的键不能重复,若重复 则重复的键后面的值由后面的值那个代替前面的值

根据键来获取值

d = {‘name’:‘张三’,‘age’:19} print(d[‘name’]) 得‘张三’

字典的使用

创建字典

dict(函数来创建字典) d = dict(name=‘张三’,age=20)
d = dict([(‘name’,‘张三’),(‘age’,19)])这是双值子序列,dict()可以将一个包含双值子序列转换成字典
双值系列指系列中只有两个值,如 [3,4](‘name’,‘hello’) ‘xy’
子序列指如果系列中的元素也是序列 ,如: [(1,2)]

len() 长度(个数)

in 和 not in 字典中是否包含指定的键,返回是一个bool值
如: print(‘name’ in d)

获取字典的值

语法: d[key] print(d[‘name’]) 若不想加引号,就得给键赋值。如: n = ‘name’ print(d[n])

**get()**根据键获取值 并且返回默认值None
语法: get(key,[default]) 若这个key不存在返回默认值None

修改字典 d[key]

如果已存在这个键,则覆盖前面的值,若不在则添加

d.setdefault(key:value)添加 key-value

如果key已经在字典中,则返回的值不会对字典做出任何操作 ;如果不存在时,则向字典添加key-value
在这里插入图片描述
#update()将其他字典里面的元素的key-value添加到当前字典中
注:若相同则代替前面的

删除

①del (d.[key])根据键来删除②d.popitem()随机删除一个键值,但一般是最后一个,有返回值是元组

③pop(key,[default])根据删除的键值对,有返回值(value)仅仅只有一个值 如果没有这个键会报错,但是指定了默认值(default)就不会报错且返回这个默认值

④clear() 清空字典

六、浅复制

copy()用于对字典进行一个浅复制,只会复制字典本身,如果字典里面还有字典则不会被复制
在这里插入图片描述

遍历列表

keys( ) 返回字典中所有的键
values() 返回字典中所有的值,是一个序列
items() 返回字典中的键值对

for k in d.keys:
for k.v in d.values:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值