python学习笔记
列表(list)
- 定义:用
[...]
。 - 下标:
0~len-1
分别对应着-len~-1
。 - 切片:
[a:b:c]
,a
是起始下标(闭),b
是末尾的下一个下标(开),c
是步长(默认为1)。
起始下标为0可以不写,末尾下标为len
可以不写。 append(x)
:向列表末尾添加单个元素x
。extend([x,y,...])
:向列表末尾添加多个元素x,y,...
。insert(p,x)
:向列表指定位置p
添加单个元素x
。
注意下标小于p
的元素不变,大于等于p
的元素向后平移。count(x)
:返回列表中元素x
出现的次数。copy()
:返回一个相同的列表。(与原列表内存地址不同)
注意:直接用=
赋值的列表指向的是同一个地址!!!sort()
:没有返回值,对列表本身直接改变。加参数reverse=True
排倒序。reverse()
:没有返回值,翻转列表本身。join(list)
:这其实是一个字符串的方法,用法是将list
中的元素连接成一个字符串。注意list
中的元素全部要是字符串类型。通常可以这样用:
str = "".join(['1','2'])
# 等价于 str = "12"
list(target)
:这是一个内置函数,将target
转化成列表并返回这个列表。目前已知target
的类型可以是字符串或者元组。len(list)
:内置函数,返回列表list
的长度。sorted(list)
:排序list
(本身不会改变),返回排序后的列表。加参数reverse=True
排倒序。
元组(tuple)
即不可变的列表。
- 定义:用
(...)
。 - 下标:同列表。
- 拆包:
a,b,c,d,e,...=t
,a
等变量分别拿到元组t
中第1个,第2个,……的元素。
a,*b,c=t
,a
拿第一个,c
拿最后一个,剩下都是b
。(只能有一个*
,也可以在a
或者c
前面)。 list()
:内置函数,元组转列表。
字符串
- 性质:字符串是不可变的。(不能添加,修改,删除)在字符串末尾拼接之类的操作都不是对原字符串进行操作,而是返回了一个新的字符串。
- 格式化:
f"{变量名1}...{...}"
,括号里面写变量名即可。 - 取消转义:两个
\\
或者字符串前面加上r
。格式化的f
可以一起加上来,写成fr""
。 \b
:删除符号。index(x,p)
:返回元素x
在字符串中,从下标p
开始第一次出现的下标。(x
是字符串)
元素不存在会报错。find(x,p)
:一毛一样,元素不存在不会报错,而是返回-1。replace(x,y,cnt)
:将子串x
替换成y
,替换cnt
次,返回新的字符串(原串不变)。cnt
不写默认全部替换。strip()
:去除两端的空格。lstrip()
:去除左端的空格。rstrip()
:去除右端的空格。split(s)
:以s
为切割条件切割字符串,返回一个列表。第二个参数num
是切割num
次,也就是分成num+1
个子串。
如果s
填上去了,就算它是第一个子串或者末尾的串,都会在列表的头部或者尾部加上一个空字符''
。不填s
,就默认删除所有的空字符(空格,\n
,\t
)。upper()
:全部转大写。lower()
:全部转小写。swapcase()
:大写转小写,小写转大写。
这仨对非字母字符不做处理。isalpha()
:判断是否全部为字母。isupper()
:判断是否全部为大写。(不考虑数字等非字母字符)islower()
:判断是否全部为小写。(不考虑数字等非字母字符)isdigit()
:判断是否全部为数字。replace(" ","")
:去除所有空格。
其它
len(str)
:内置函数。
字典(dict)
- 字典的元素是:键值对,key-value,key需要是不可变数据类型。
- 直接用
[]
,不存在键的时候会报错,用get
则会返回None
,不会报错。 get(x,y)
,查询键x
对应的值,查询不到则返回y
,y
默认为None
。setdefault(x,y)
,同上。但是如果x
不存在,还会额外添加一个x:y
的键值对。a=['1':1,'1':2]
,一个键有多个值,会保留最后一个值。update({字典})
:有则修改,无则新增。pop(name)
根据键名删除。popitem()
删除最后一个元素。clear()
清楚所有的元素。- 空列表,元组,字符串,字典都是False。
id(dict)
:获取dict地址。copy()
:复制。keys()
:返回由字典的键构成的dict_keys
。values()
:返回由字典的值构成的dict_values
。items()
:返回由字典键值对构成的dict_items
(元素是长度为2的元组)。
这仨可以用list
转成列表。
集合(set)
- 集合中的元素不重复,小于32的值才会有点像排序的顺序,但其实不会排序。
- 交集
s1 & s2
,并集s1 | s2
,差集s1 - s2
(其实就是s1 - (s1 & s2)
)。 a = {}
空字典,a = set()
空集合。a.add(7)
添加元素7。a.update({1,2,3})
添加元素1,2,3。a.remove(1)
删除元素1。不存在会报错。a.discard(1)
删除元素1。不存在不会报错。a.pop()
删除第一个元素。(其实是随机删除一个元素)