一、元组 (tuple)
定义:不可变系列,用法与列表差不多,但是不能修改
#元组的创建
bun = ()
1.元组与列表用法雷同,但添加、删除元素不行
2.不能对元组进行重修赋值
3.如果不是空的元组,至少添加一个逗号(10 是整型,但是 10,是元组)
4.可以放字符串与数字一起
#元组的解包
指将一个元组的每一个元素都赋值给一个变量,但是变量与元素的个数必须一致,若不一致时 可在元素前面添加一个“*”来收集剩下的元素,以列表形式返回(取前面,中间也可以,但是只能在一个元素前添加*,两个元素不能)
二、可变对象(就可改变里面的值)
1.每个对象当中保存了3个东西 id(标识) value(值) type(类型)
a = [1,2,3]
a[0]=10 (改对象,其实就是值) 这个操作是通过改变对象里面的值,不会改变变量指向的对象(id不变)
a = [4,5,6] (改变量) 这个操作是给变量重新赋值,改变变量所指向的对象(id变)
三、== 和 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: