[]代表列表、()代表元组、{}字典
列表
append 尾部添加(追加) 只能在列表的尾部进行添加,只能再其尾部加入,并且一次只能插入一个
for 可以遍历插入
list=['这','是','个','表']
list.append('对')
print(list)
一次插入一个,并且只能是一个
inster 是根据下标插入,一次插入一个,只能是一个
list.insert(1,'布')
print(list)
二维列表,也叫链表的嵌套
list2=['这','有','个','表',['这是嵌套的表']]
print(list2)
嵌套的这个表也只占一个下标
extend 可迭代对象 将一个列表中的元素逐个添加到另外一个列表
list3=['你','好','我',[],'!']
a=['####','$$$$']
list3.extend(a)
print(list3)
注意是逐个,所以并不能将要插入的对象放在指定的子列表中
列表下标从0开始 获取元素 num[下标]
num=[2,3,4,5,6,'^',8]
print(num[2:len(num):2])
注意len()括号里面要加入我们要求的那个列表名字
列表的遍历
遍历要用for来做
num=[2,3,4,5,6,'^',8]
for e in num:
print(e,end=' ')
遍历时类型可以不一样
使用多个变量名接受元素
bianliang1,bianliang2=['我是变量1',")))))))))"]
print(bianliang1)
print(bianliang2)
可以同时赋值变量不假,但是不能同时输出
两个列表进行相加
biangliang1='我是变量1'
bianliang2=')))))))))'
biangliang3=biangliang1+bianliang2
print(biangliang3)
如何给变量和列表同时赋值呢
*语法是:变量1,变量2=[]
lst1,*lst2= [1,2,3,4,5,6,7,8,9]
print(lst2)
#数字1给了lst1
这是列表2
列表排序,默认是升序
语法是:表.sort()
a=[34,545,656,75,32,43,57]
a.sort()#可以什么都不加,也可加入条件,比如降序条件
print(a)#数字可以
a=["c","r","n","a","b","e"]
#a="c","r","n","a","b","e"竟然不报错
a.sort()
print(a)#字母也可排序
表.sort(),不能赋值给任何东西,括号可以加入条件
表.sort() ,默认是先把大写往前排
a=["AbD","abc","aBe"]
key=str.lower
a.sort() # 默认是先把大写往前排
a.sort(key=str.lower) # 指定 key=str.lower 字母按照首字母小写往后排列
print(a)
相当于a列表传入函数中后统一变成一个大小写,然后逐一比较,在按照原来的形式输出出来
reverse = True 表示降序,=False是升序
#reverse = True 表示降序排序
a=[34,545,656,75,32,43,57]
a.sort(reverse=True) # 降序 True
print(a)
a.sort(reverse=False) #升序 False
print(a)
reverse()翻转
语法:表.reverse()
可以理解成用栈
print('翻转或者是用了栈')
a=["c","r","n","a","b","e"]
a.reverse()
print(a)
sorted() 可以对列表进行排序操作
语法:表=sorted(a)
a=["c","r","n","a","b","e"]
a=sorted(a)
print(a)#自动排序
sorted 和 reverse 协同使用
语法:sorted(列表名,reverse=bool)
reverse=True降序 False升序
a=a=["c","r","n","a","b","e"]
a=sorted(a,reverse=False)
print(a)
元组
格式:变量名 = (元素1,元素2,…)
注意 元组有一个元素,以 逗号结尾, 起始下标从 0 开始 倒序 从 -1 开始
a_tup = (1,2,3,4,5)
b_tup = ("mn",)
# 访问元组元素 通过下标
print(a_tup[-1])
# for 循环遍历元组
a_tup = (1,2,3,4,5)
for temp in a_tup:
print(temp,end=" ")
可以存储int 字符串 float bool 列表
m_tup = (1,2,"hello",12.5,True,[1,2,3])
for temp in m_tup:
print(temp)
元组截取
语法:元组[头下标:尾下标:步长]
含头,不含尾
m_tup = (1,2,"hello",12.5,True,[1,2,3])
print(m_tup[1:4]) # 通过下标截取元组数据 下标包含头,不含尾
print(m_tup[0:5:2]) # 步长为2 (1, 'hello', True)
元组合并与重复
#元组合并
a = (11,22)
b = (33,44)
c = a+b
print(c) #两个元组相加 (11, 22, 33, 44)
# 重复
a = (11,22)
b = a * 4 # 复制四份 生成新元组(11, 22, 11, 22, 11, 22, 11, 22)
print(b)
tuple函数 将一个对象转成元组
元组也可以转化成元组
# tup函数 将一个对象转成元组
s1 = "python-very-good"
#s1 = 123456 #TypeError: 'int' object is not iterable
s1 = tuple(s1)
print(s1)
# 列表转元组
s2 = [1,2,3,4,5,6,7]
s3 = tuple(s2)
print(s3)
# 将元组 转成 元组
tup = (1,2,3,4,5,6,)
new_tup = tuple(tup)
print(new_tup)
元组中的逗号
元组中的一个逗号,有逗号是元组类型,没有逗号是普通的值的类型
t1=(1,)
t2=(1)
print(type(t1))
print(type(t2))
元组中的方法
index,从左往右返回第一个遇到的指定元素的索引,没有就报错
返回值是下标
y=('A','n','a','c','o','n','d','a',3)
print(y.index('c'))#下标
print(y.index('n'))
print(y.count('n'))#是计数
这是没有报错的情况
这是报错的情况
字典
字典的增删改
字典是Python中唯一内建的数字类型
格式:key:value
键:值
youqu={'name':'于谦','age':18,'hobby':{'抽烟','喝酒','烫头'}}
print(youqu)
print(type(youqu))
字典中的键是不可修改数据类型
即:不可改(只能增删查)
u={'name':'张三','age':16}
print(u)
v={['1','2']:'heihei'}
print(v)
明天再学删查!
再把今天的深浅拷贝讲一下
若想用copy,必须调用copy的包
列表[]
import copy
a=['1','2']
print(id(a))
print(id(a[0]))
print('以下是浅拷贝')
b=copy.copy(a)
print(id(b))
print(id(b[0]))
print('以下是深拷贝')
c=copy.deepcopy(a)
print(id(c))
print(id(c[0]))
import copy
a=[['1'],['2']]
print('a的列表地址',id(a))
print('a列表第一个元素地址',id(a[0]))
print('以下是浅拷贝')
b=copy.copy(a)
print('b的列表地址',id(b))
print('b列表第一个元素地址',id(b[0]))
print('以下是深拷贝')
c=copy.deepcopy(a)
print('c的列表地址',id(c))
print('c列表第一个元素地址',id(c[0]))
值得注意的是
个人拙见,请见谅!