Python_3、数据容器和函数进阶
目录
数据容器
列表(list)
元组(tuple)
字符串(str)
集合(set)
字典(dict)
序列的切片
函数
数据容器
数据容器一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。 数据容器根据特点的不同,如: 是否支持重复元素 是否可以修改 是否有序,等 分为5类,分别是:
列表(list)
列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套。可以容纳多个元素(上限为2**63-1、9223372036854775807个) 可以容纳不同类型的元素(混装) 数据是有序存储的(有下标序号) 允许重复数据存在 可以修改(增加或删除元素等)
#列表的定义十分自由
list1=[1,2,"3",4.0,True,[7,8,9]]
#列表的索引正向从0开始,反向从-1开始
print(list1[0],list1[-1])
#查找元素:
print(list1.index(2))
#插入元素:1是位置,5是值
list1.insert(2,5)
#删除元素:删除4.0两种方式
list1.pop(3)
del list1[3]
#追加元素 追加6到最后 两种方式
list1.append(6)
list1.extend(6)
#清空列表:
list1.clear()
#修改元素:
list1[2]=5
#统计某个元素个数:
list1.count()
#统计长度
len(list1)
元组(tuple)
可以容纳多个数据 可以容纳不同类型的数据(混装) 数据是有序存储的(下标索引) 允许重复数据存在 不可以修改(增加或删除元素等) 支持for循环
#元组一旦定义完成,就不可修改
#定义一个元素的元组必需带逗号,否则不是元组类型
tup1 = (1,)
tup2 =(2,False,"ss")
#定位
tup2.index(2)
#某个元素出现次数
tup2.count(False)
#取长
len(tup2)
字符串(str)
和列表、元组大差不差
#字符串 操作差不多,但是不可修改
# 字符串的一切修改得到的都是新的字符串
str =" 123abcd321 "
#字符串的规整操作(去前后空格)
str2=str.strip()
print(str2)
#字符串的规整操作(去前后指定字符串)
print(str2.strip("132"))
#统计某字符出现次数
print(str.count("2"))
#取长
len(str)
#分割 按b分割 不包含b
str3=str.split("b")
print(str3)
#替换
str4=str2.replace("123","456")
print(str4)
集合(set)
不支持元素的重复(自带去重功能)、并且内容无序,不支持下标索引访问
#集合定义
set1={1,2,3,4,5,6,7}
set2={5,6,7}
#集合添加
set1.add(2)
#集合移除元素
set1.remove(3)
#集合随机抽取
set1.pop()
#集合清空
set1.clear()
#集合对比
set1.difference(set2)
#集合删除集合1中集合2含有的元素
set1.difference_update(set2)
#集合俩两个集合
set1.union(set2)
#集合取长
len(set1)
字典(dict)
字典存储的元素是一个个的:键值对,字典同集合一样,不可以使用下标索引 但是字典可以通过Key值来取得和操作对应的Value
#字典的定义方式和集合类似只不过是键值对的形式
dir={"key1":1,"key2":2}
#新增
dir["key3"]=3
#更新
dir["key2"]=3
#删除
dir.pop("key2")
#清空
dir.clear()
#获取所有key
key=dir.keys()
#取长
len(dir)
序列的切片
这里指的切片是不影响原有数据的
my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4] # 下标1开始,下标4(不含)结束,步长1
print(new_list) # 结果:[2, 3, 4]
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:] # 从头开始,到最后结束,步长1
print(new_tuple) # 结果:(1, 2, 3, 4, 5)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2] # 从头开始,到最后结束,步长2
print(new_list) # 结果:[1, 3, 5]
my_str = "12345"
new_str = my_str[:4:2] # 从头开始,到下标4(不含)结束,步长2
print(new_str) # 结果:"13"
my_str = "12345"
new_str = my_str[::-1] # 从头(最后)开始,到尾结束,步长-1(倒序)
print(new_str) # 结果:"54321"
my_list = [1, 2, 3, 4, 5]
new_list = my_list[3:1:-1] # 从下标3开始,到下标1(不含)结束,步长-1(倒序)
print(new_list) # 结果:[4, 3]
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:1:-2] # 从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
print(new_tuple) # 结果:(5, 3)
函数
多返回值
return 1,2,3,4
参数传递
- 位置参数
- 关键字参数
- 缺省参数
- 不定长参数
#位置参数
def fun1(a,b,c):
print(a,b,c)
#关键字参数
def fun2(a,b,c):
print(a,b,c)
#缺省参数
def fun3(a,b,c=5):
print(a,b,c)
#不定长参数
def fun4(*args):
print("666")
fun1(1,2,3)
fun2(a=1,b=2,c=3)
fun3(1,2)
fun4(1,2,3,4,5)