3.容器类型

目录

一、列表

1.创建

2.内容

3.操作

二、元组

1.创建

2.内容

3.操作

三、字典

1.类比

2.内容

3.创建

4.数据项

5.批量添加数据项

6.操作 

四、集合

1.概念

2.特点

3.创建

4.操作

 5.访问

6.运算

五、可变类型与不可变类型

1.不可变类型数据

2.可变类型数据

六、建立复杂的数据结构

七、输入和输出

1.输入(input)

2.输出(print)

3.格式化字符串

八、上机练习

第一个:列表、元组操作 

第二个: 集合与字典操作


容器类型可以视作一个数据收纳盒(用来收纳数据对象的数据类型)

可以以一种规则的下标索引方式(收纳盒名字+数字序号)访问到每一个数据

这种收纳盒都是序列

一、列表

1.创建

方括号法[  ]、指明类型法 list()

2.内容

保存的每一个数据都是一个元素(element),类型没有限制

3.操作

增长:

append操作/insert操作/extend操作

缩减:

pop操作/remove操作/clear操作

重新组织:

reverse:把数据的顺序倒过来排列

sort:把数据按从小到大顺序排列

reversed/sorted重新排列但不影响原列表,只是给出一个新列表

详细:

 合并:

加法+:连接两个列表

乘法*:复制n次,生成新列表

大小:

len():列表中元素的个数

索引:

alist[n]  (可根据需要再赋值)

切片:

alist[start : end : step](与字符串切片一致)

查找:

in操作:判断某个元素是否存在与列表中

index操作:指定的数据在列表的哪个位置

count操作:指定的数据在列表中出现了几次

计算:

sum函数:将列表中所有的数据元素累加

min/max函数:返回列表中最小/最大的数据元素 

二、元组

1.创建

圆括号法()、指明类型法tuple()

2.内容

保存的每一个数据都是一个元素(element),类型没有限制

3.操作

 合并:

加法+:连接两个元组

乘法*:复制n次,生成新元组

大小:

len():元组中元素的个数

索引:

atuple[n]  (不可根据需要再赋值)

切片:

atuple[start : end : step](与字符串切片一致)

查找:

in操作:判断某个元素是否存在与元组中

index操作:指定的数据在元组的哪个位置

count操作:指定的数据在元组中出现了几次

计算:

sum函数:将元组中所有的数据元素累加

min/max函数:返回元组中最小/最大的数据元素 

三、字典

1.类比

数据收纳盒中放着数据,我们可以给每一份数据贴标签,就像字典中汉字与拼音的关系

2.内容

保存着一系列key-value对(可以通过key来索引元素value)

value没有顺序,可以为任意类型

key是任意不可变类型(数值/字符串/元组)

3.创建

花括号法{ }、指明类型法 dict()

4.数据项

每个key-value对都是一个数据项

key与value间用“:”连接

5.批量添加数据项

student = dict.fromkeys(("name","age"))

6.操作 

合并/增长:

update方法

缩减:

del操作:删除指定key的数据项

pop操作:删除指定标签的数据项并返回数据值

popitem操作:删除并返回任意一个数据项

clear操作:清空字典

 

大小:

len():返回数据项个数 

索引:

标签索引:dict[key](可用于获取指定key值的数据值或更新数据值)

keys函数:返回字典中的所有key

value函数:返回字典中所有数据值

items函数:以二元元组形式返回所有数据项

in操作:判断字典中是否有 该key(可以与value函数结合判断是否有该value)

四、集合

1.概念

字典去除所有数据值(value),留下的key组成集合

2.特点

不重复元素的无序集合

3.创建

花括号法{ } 、指明类型法set()

用set()可创建空集

用set()可从其他序列转换生成集合

集合会自动忽略重复的数据

集合中不能加入可变类型数据

4.操作

增长:

add:添加一个数据

update:批量添加数据

缩减:

remove/discard:删除指定数据

pop:删除任意数据并返回值

clear:清空集合

大小:

len函数

 5.访问

in:判断元素是否属于集合

pop:删除数据元素的同时,返回它的值

         取遍所有数据元素后,集合成为一个空集

        可以用copy操作先给集合制作一个”替身“

迭代循环:for i in aset:

6.运算

生成新集合运算

关系判定:

<,<=,>=,>分别对应子集/真子集/真超集/超集 

交集:

isdisjoint():判断两集合交集是否为空

五、可变类型与不可变类型

1.不可变类型数据

一旦创建无法修改数据值的数据类型

数值、逻辑值、字符串、元组

2.可变类型数据

可以随时改变的数据类型

列表、字典、集合

一旦数据值改变,那该数据值对应的所有标签的内含数据值都改变

六、建立复杂的数据结构

列表、元组、字典可以相互嵌套

七、输入和输出

1.输入(input)

input():()里可以填写提示信息(用” “括起来)

该函数返回的是字符串,可通过强制类型转换改变(例如:x=int(input()))

2.输出(print)

print([objct,......][,sep=' '][,end=' '][,file=sys.stdout]):

sep表示变量之间用什么字符串隔开,缺省是空格:

end:表示以该字符串结尾,缺省为换行

file:指定了文本将要发送到的文件、标准流或其他类似的文件的对象,默认为sys.stdout

3.格式化字符串

相当于C语言中的&a,%d,%s等

’%d %s'  % (v1,v2)

 

八、上机练习

第一个:列表、元组操作 

list1 = [1,2,3,4,5,6]
list2 = ['a','b','c','d','e','f']
print(list1 +list2)
print(list1 *2)
print(len(list1))
print(list1[0],list2[0],list1[5],list2[5],list2[-2],list2[-1],list1[-2],list1[-1])

 

list1=[1,2,3,4,5]
list2=['a','b','c','d','e']
tuple1=(1,2,3,4,5)
print(list1[1:4])
print(list1[2:5])
print(list1[-3::-1])
print(list1[0:6:2])
print(tuple1[1:4])
print(tuple1[2:5])
print(tuple1[-3::-1])
print(tuple1[0:6:2])
t='Mike and Tom'
print(t.split())
print('/' .join(['Mike','and','Tom']))

第二个: 集合与字典操作

a=set([1,2,3,4,5])
b=set([2,4,6,8,10])
print(a&b)
print(a|b)
print(a-b,b-a)
print(a ^ b)
print(a.add(6),a)
print(a.update([6,7,8,9]),a)
print(a.remove(4),a)
print(3 in a)
print(len(a))
print(a.clear())
print(len(a))
dict1={1:'Mon','line1':3332}
dict1[2]='Tus'
print(dict1)
del dict1[2]
print(dict1)
print(len(dict1))
print(dict1.keys(),dict1.values())
print(dict1.items())
print('Mon'in dict1,1 in dict1)

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值