python基础2
2. 变量类型
2.3 列表 list
2.3.1 列表的创建
列表可以支持任意类型的元素,常规的创建这里就不再赘述
在某些特殊的情况下,我们会已知列表的长度,或者列表的长度由某一参数决定,而我们需要将元素放入列表的指定位置,这种情况下我们在列表初始化的时候就要预留好元素的位置
#可以用一些简单的元素先行占好位置,例如0或者空字符,这样后续就可以给指定位置赋值 #写法1 x=[0 for _ in range(4)] #写法2 y=[0]*4 x[1]=2 y[1]=2 print(x) print(y) ''' 输出: [0, 2, 0, 0] [0, 2, 0, 0] '''
2.3.2 内置函数
切片操作(即字符串中所讲)
在字符串中其实就是把字符串看成列表,把每一个字符看成元素,包括空字符和转义字符,遵循左闭右开的法则,具体看前一篇
.append()/.extend()
都是在列表最后添加元素
区别在于append一次只能添加一个元素,而extend一次可以添加多个元素
.insert()
在指定位置处插入元素,需要注意当指定索引 n 时,元素插入在 n+1位置处
x=[0,0,0,0,0,0] x.insert(3,1) print(x) ''' 输出: [0, 0, 0, 1, 0, 0, 0] '''
.remove()/ del /.pop()
- 都是可以删除列表元素
- remove()删除指定元素,注意删除的是从左开始第一个指定元素
- del()删除的是指定索引位置上的元素
- pop有两个功能,返回列表最后一个元素并删除
x=[1,0,0,1,0] x.remove(0) print(x) x=[1,0,0,1,0] del x[3] print(x) x=[1,0,0,1,0] s=x.pop() print(s) print(x) ''' 输出: [1, 0, 1, 0] [1, 0, 0, 0] 0 [1, 0, 0, 1] '''
- .count()
- 返回指定元素出现的次数
- .index()
- 返回指定元素的索引,这里只会返回检索到的第一个指定元素的位置
- 当列表没有指定元素时会报错
- 另外还可以指定范围进行检索
x=[1,0,0,1,0] y=x.index(1) z=x.index(1,1,4) print(y) print(z) ''' 输出: 0 3 '''
- 列表的拼接
- 通过A+B将A,B两个列表拼接起来
2.4 元组 tuple
元组看上去陌生,在平时其实很常用到,只是大家没有意识到自己用的就是元组。个人理解就是一个不能修改的有序列表,元组几乎继承了列表的所有属性,大部分操作同列表一样
- 元组的创建
t=() print(type(t)) t=(1,2) print(type(t)) t=1,2 print(type(t)) #也可以先创建列表再转换成元组 l=[1,2,3] t=tuple(l) print(type(t)) print(t) ''' 输出:(1, 2, 3) '''
2.5 集合 set
同数学定义,是一堆确定的无序且唯一的数据
2.5.1 集合的创建
- 集合的创建容易写错成字典
s=set() print(type(s)) s={1,2} print(type(s)) #当使用空大括号时会被当成字典! s={} print(type(s)) ''' 输出:'''
- 可以利用集合的唯一性来过滤列表,剔除重复元素
l=[1,1,2,2,1,0,0] s=set(l) print(s) ''' 输出: {0, 1, 2} '''
2.5.2 内置函数
.len()/.max()/.min()同列表一致
.add()
向集合内添加元素
.remove()/.discard()/.pop()
都是删除元素
.remove()删除指定元素,若元素不存在会报错
.discard()同样是删除指定元素,但是元素不存在不会报错
.pop()随机移除一个元素
s={1,2,3,'aaa',7} s.remove(3) print(s) s.remove(0) ''' 输出: {1, 2, 7, 'aaa'} Traceback (most recent call last): File "script.py", line 4, ins.remove(0) KeyError: 0 Exited with error status 1 '''
s={1,2,3,'aaa',7} s.discard(3) print(s) s.discard(0) print(s) s.pop() print(s) ''' 输出: {1, 2, 7, 'aaa'} {1, 2, 7, 'aaa'} {2, 7, 'aaa'} '''
集合函数(同数学定义)
函数 含义
A.intersection(B) A与B的交集
A.difference(B) A与B的差集
A.union(B) A与B的并集
A.issubset(B) B是否为A的子集
A.issuperset(B) B是否为A的超集
frozenset()
冰冻集合,即集合不可以做任何修改
2.6 字典 dict
2.6.1 字典的创建
传统直接赋值都比较熟悉,不再赘述
fromkeys() 创建一个新字典
dict.fromkeys(seq[, values]) 以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
seq=['name','age','sex'] values=0 d=dict.fromkeys(seq, values) print(d) ''' 输出: {'name': 0, 'age': 0, 'sex': 0} '''
2.6.2 内置函数
- .keys()
- 以列表返回所有键值
- .values()
- 以列表返回字典所有值
- .get()
- 返回指定键的值
- .update()
- 将一个字典更新到另一个字典当中
d={'name': 0, 'age': 0, 'sex': 0} a={'telephone':110} l1=d.keys() l2=d.values() x=d.get('age') d.update(a) print(l1) print(l2) print(x) print(d) ''' 输出: dict_keys(['name', 'age', 'sex', 'telephone']) dict_values([0, 0, 0, 110]) 0 {'name': 0, 'age': 0, 'sex': 0, 'telephone': 110} '''