元组(tuple)
特性:相当于不可变的列表
一直是一开始的样子
t = (1,2,3,4,5)
t2 = (1,) # 如果只有一个元素,必须在末尾添加一个逗号
print(t2,type(t2)) # 否则显示的类型就是int,而不是tuple
用 range 创建一个元组
t3 = tuple(range(2,31))
print(t3)
for i in t: # 遍历并打印
print(i)
print(t3.index(4)) # 查找4出现的索引位置
print(t3.count(5)) # 查找5出现的次数
元组和列表相互转换
L = list(t3)
print(L,type(L))
t4 = tuple(L)
print(t4,type(t4))
排序
t5 = (1,4,7,9,2,4,7,33,11)
s1 = tuple(sorted(t5,reverse=True)) # 降序排序
s2 = tuple(sorted(t5)) # 默认升序排序
要给元组排序,可以先将其转为列表,排序后,再转为元祖
元组不可变,但是元祖里存放的列表里的元素可变,不受元组本身的影响
t6 = (1,2,3,4,5,[1,2,3],[4,5,6])
a = t6[5]
print(a,type(a))
列表(list)
s = [1,2,3,4,5,6,‘a’,‘b’,‘c’,‘小花’,‘小明’,True]
for i in s: # 遍历列表s
print(i,type(i)) # 打印列表s里的每个元素和该元素的类型,经常用到
s[3] = ‘小乔’ # 列表赋值 注:与字符串类似,修改原有的列表相当于建立一个新的列表
# 赋值的时候,是给原有的列表赋值
b = s[1:4] # 切片 范围取值,从s[1]开始,到s[4]结束,但不包含s[4],即使用列表取值
c = s[::2] # 步长 全列表每两个元素取一个,从s[0]开始,到最后一个索引(包含最后一个)
s2 = [1,2,3,[4,5,6],[7,8,9]]
d = s2[4][1] # 二维列表取值,取索引s2[4]里的第二个元素
s2[4][1] = 0 # 二维列表取值,把0赋值给索引s2[4]里的第二个元素,相当于替换该元素
用 range 创建一个列表
l = list(range(2,31))
添加
s3 = []
s3.append(‘111’) # 列表添加元素
s3.append(‘222’) # append()只接受一个参数
s3.extend([7,9]) # 扩张即在列表最后增加元素7,9
删除
s4 = [1,2,3,‘delete’,‘remove’,‘pop’,4,5,6]
s4.remove(3) # 删除列表s10里面3这个元素
s4.pop() # 默认删除最后一个,且会把要删除的元素打印出来
s4.pop(1) # 指定删除索引s10[1]对应的元素
s4.pop(-1) # 指定删除索引s10[-1]对应的元素
修改
s4.reverse() # 反转列表
s5 = [1,2,3,4,5,11]
s5.insert(3,666) # 在索引s12[3]插入666
查找
print(s5.index(3)) # 找元素3所在的索引位置
print(s5.count(5)) # 查找列表中元素5出现的次数
排序
s5.sort(reverse=False) # 列表升序
s5.sort(reverse=True) # 列表降序
L = [1,3,5,8,3,2]
a = sorted(L,reverse=False)
b = sorted(L,reverse=True)
“”"
sort 与 sorted 的区别:
sort 修改原始列表
sorted 新建一个列表
“”"
其他
s6 = [1,2,3,4,5,11]
L = len(s6) # 列表长度
L2 = max(s6) # 最大值
L3 = min(s6) # 最小值
s6.clear() # 清空列表
print(’*'50) # 打印出50个
字典(dict)
通过key-value(键-值)匹配数组的存在,完全不考虑位置
key: 查询所需要的关键字,在同一个字典中不允许重复,key一般来说都是使用字符串
d = {‘A’:11,2:22,‘C’:33,‘D’:44}
print(d,type(d))
d1 = d[‘C’] # 字典取值,把 key ‘C’ 对应的 value 赋给 d1
d2 = d[2] # 使用列表取值 [这里放的事 key 值],一样是把 key ‘C’ 对应的 value 赋给 d2
d2 = d.get(‘f’)
使用列表取值,如果没有对应的 key ,就会报错
使用 get() 方法取值,如果没有对应的 key ,则返回None
赋值
d[‘C’] = 33333
删除
d.pop(‘A’)
for 循环
for i in d: # 遍历 d
print(i) # 打印出 key
print(d[i]) # 打印出 value
for j in d.values(): # 遍历输出d里所有的value
print(j)
for q in d.keys(): # 遍历输出d里所有的key
print(q)
for k,v in d.items(): # 遍历输出d里所有的key和value
print(k,v)
集合(set)
无序的集合,没有重复的元素,可变的容器
tmp = {1,2,3,‘good’,3}
print(tmp,type(tmp))
增
tmp.add(‘love’) # 元素已存在时不能添加进去
改
tmp.update([1,2,3,4,5,6,‘blue’]) # 将容器中的元素放到集合中去,去掉重复的元素
删
tmp.remove(‘blue’)
清空
tmp.clear()
集合与列表之间的转换
L = list(tmp)
LL = [1,1,1,1,2,2,2,3,3,4,4,4,5,5,5,55,5,5,]
set1 = set(LL)
sss1 = {1,2,3,6,8,9}
sss2 = {2,3,4,5,6,9}
print(sss1 & sss2) # 与 打印出两者相同的元素
print(sss1 | sss2) # 或 打印出两者所有元素(相同元素只打印一次)
print(sss1 ^ sss2) # 非 打印出两者不同的元素