1、python的数据容器(数据结构)
列表(list),元组(tuble),字典(dict),集合(set)
2、列表:list
定义:[ ]
特点:可变的,元素有序,元素可重复,元素类型多样
增加:append(追加),insert(指定索引)
list1 = [1,2,3,4,5,6,7,8,9]
list1.append(10)
print(list1)
list1.insert(0,1.0)
print(list1)
修改:
list1[2] = '100'
print(list1)
删除:pop(移除最后一个元素),remove(直接删除)
#删除pop,移除最后一个元素
print(list1.pop())
#remove直接删除元素
list1.remove('100')
print(list1)
查:获取元素,切片
print(list1.index(5))
#通过索引获取元素
print(list1[4])
#切片[起始位置:结束位置(默认最后):步长(默认为1)]
print(list1[1:5:1])
print(list1[::-1])
排序sort()
list2.sort() #默认升序
list2.sort(reverse=True) #降序
#反转,本身反转
list1.reverse()
3、元组:tuble
定义:() 特点:不可变,不能修改元组,元素 类型多样,可重复 注意:当创建只有一个元素的元组时,需要加上,
元组方法少,index(查找,返回第一次出现索引),count(出现次数),支持切片
4、字典:dict(类似于map k-v结构的)
定义{
"k1":"v1","k2":"v2"...}
特点:可变的,无序的,key-value格式,key不能重复,value可以是任意类型(元组,字典等) 查询非常慢,不会随着元素的增多而变慢
注意:key必须是不可变的,list不可以,基本数据类型和元组都可以
获取元素:
print(dict2["k1"]) //索引下标取
#调get方法获取元素
print(dict2.get("k9","key不存在返回这里")) //安全,即使数据不存在也不会报错
更改:
dict2["k1"] = "v11"
print(dict2)
增加:
dict2["newkey"] = "newValue"
print(dict2)
删除:
dict2.pop("newkey")
print(dict2)
del dict2["k1"]
print(dict2)
示例:
dict3 = {
"k1":"v1",
True: "v4",
False: "v5",
1:"v2",
0:"v3",
2:"vvvv"
}
#当字典在定义的时候出现True和False以及数值(0,1)的key,那么后面的会覆盖前面的值
#0与False相互覆盖,1与True相互覆盖
5、集合:set
定义{} 特点:可变,自动去重,无序,元素类型多样,元素是唯一的(不可重复)
增加:
set1.add("123")
print(set1)
交并差集
set1 = {
1,2,3,4,5,6}
set2 = {
4,5,6,7,8,9}
#交集`在这里插入代码片`
print(set1 & set2)
#并集
print(set1 | set2)
#差集
print(set1 - set2)
6、函数enumerate和zip
#enumerate获取元素时获取对应的下标
for i in enumerate(list1):
print(i)
#zip函数:将两个list压成dict字典
key_list = ["k1","k2","k3"]
value_list = ["v1","v2","v3"]
for i in zip(key_list,value_list):
print(i)
7、格式化字符串-----按照标准的格式输出
a = 2
b = 3
print(a, "*", b, "=", a * b)
#提前定义好模板
str_format = "{} * {} = {}"
print(str_format.format(a, b, a * b))
# 定义好一个规则,%d表示整型,%s表示字符串,%f表示浮点
print("%d * %d = %d" % (a, b, a * b))
8、函数range-----用于生成一个序列
#range(起始:结束:步长)
for i in range(1,11,2):
print(i)
9、列表推导式
list1 = [str(i) for i in range(1, 11, 1) if i % 2 == 1]
print(list1)
打印列表list
print("|".join(list1))
10、99乘法表
#99乘法表
print("\n".join(["\t".join(["{}*{}={}".format(i,j,i*j) for j in range(1,i+1) ]) for i in range(1,10,1)]))