根据错题衍生知识点,自用,欢迎指正。
有序序列:列表、元组、字符串
无序序列:字典、集合
#当查找字符串时,结果为首字符出现位置
>>> 'abcabcabc'.rindex('abc')
6 #当查找字符串时,结果为首字符出现位置
s.swapcase():大小写互换
替换
s.replace(u,v[,n]):把u替换为v n次(默认全部)
s.strip([c]):去掉首尾连续的字符串(默认空格)
s.lstrip([c]):首部开始,重复的都替换
s.rstrip([c]):尾部,同理
s.expandtabs([n]):把\t替换为n个空格(默认8)
主要对strip()和expandtab()不熟悉,举例
>>> s='abcHello\tworld!'
>>> s='abcabcHello\tworld!abdabc'
>>> s.lstrip('abc')
'Hello\tworld!abdabc'
>>> s.rstrip('abc')
'abcabcHello\tworld!abd'
>>> s.strip('abc')
'Hello\tworld!abd'
>>> s.expandtabs(2) #换成两个空格
'abcabcHello world!abdabc'
>>>
测试
s.isspace():全为空格
s.istittle():所有词首字母大写
s.isupper():全大写
s.islower():全小写
!!!!!!
小写转换s.lowers()有s!!!!
s[i[:j[:k]]] 不包含 j
从i到(j-1) 是切一段哟!
使用切片y=x[:]的方法,复制,地址不一样
包含右端点的目前只见过两函数:randint(a,b),uniform(a,b)
宝藏切片可以使倒序
>>> s=[1,23,545,6]
>>> t=s[-1::-1] ##########
>>> print(t)
[6, 545, 23, 1]
``
>>> x=[1,2,3,4,5] #当超出范围时,返回空列表
>>> a=x[10:]
>>> print(a)
[]
apped():末尾添加[元素]
extend():合并列表
>>> a=list(range(4))
>>> a.append([2]) #保留list特性
>>> a.extend([5]) #消除list特性
>>> print(a)
[0, 1, 2, 3, [2], 5]
关系
与第一个不相同的元素比较,也就是说:相等必须顺序相同
而集合就是数学那样
集合{…}:相同元素只保留一个;元素不可改变但可添加s.add(x),删除。
>>> s=set(range(8)) #se(range(n))生成列表
>>> print(s)
{0, 1, 2, 3, 4, 5, 6, 7}
>>> s.remove(4) #remove()&discard()删除指定值,
>>> s.discard(5) #而非位置
>>> print(s)
{0, 1, 2, 3, 6, 7}
>>> s.pop() #删除任意一个元素
0 #【列表】中默认组后一个
>>> s.pop()
1
>>> del s #注意del&clear()的不同
>>> print(s) #del删除集合,clear删除【元素】
Traceback (most recent call last):
File "" , line 1, in <module>
print(s)
NameError: name 's' is not defined
>>> s=set(range(5))
>>> s.clear()
>>> print(s)
set()
>>>
集合关系运算
并集:|,union()
交集:&,intersection()
差集:-,difference()
对称差集:^,symmetric_difference()
>>> a={1,2,3,'a',34}
>>> b={'a',8,9,0}
>>> c={34,4,7,9} #所有的操作顺序计算
>>> a-b-c #不可a-(b-c)!
{1, 2, 3}
>>> a.difference(b).difference(c) #差集只去相同,不补充
{1, 2, 3}
>>> a.symmetric_difference(b).symmetric_difference(c)
{0, 1, 2, 4, 3, 7, 8} #对称集连b,c间相同的也会消除!
键只读
字典的核心是键值对——这一核心将解释“dict()转换”,长度
没有值就默认"None"
dict()的使用:
元素第一个为“键”,第二个为“值”
>>> dict([['a',3],('f',2)]) #可以注意到:
{'a': 3, 'f': 2} #所转换的列表和元组
dict((('a',2),('b',3),('c',5))) #都是【嵌套】型的
{'a': 2, 'b': 3, 'c': 5} #子列表/元组 都是成对的
{}.fromkeys(k[,v])
setdefault()
>>> s={'梦想':'科学家'} #冒号在!之间!
>>> s.setdefault('梦想','太空人') #如果键存在,则保持[原值]
'科学家'
>>> s.setdefault('星际飞船','自然选择')
'自然选择'
>>> print(s)
{'梦想': '科学家', '星际飞船': '自然选择'}
删除
pop():删除[指定的] [键值对]
popitem():随机删除对
clear():删除所有对象
del d[]:删除指定的字典或指定的键
列表、集合、字典都可以使用pop(),但规则不同
>>> a=list(range(4))
>>> b=set(range(5))
>>> c={'Dream':'Have an AGI','Spacecraft':'Natural Selection'}
>>> a.pop() #[列表]删除指定[位置(s.index()]
3 #默认最后一个
>>> b.pop() #任意一个 我的一般删除第一个
0
>>> c.pop() #出错
Traceback (most recent call last):
File "" , line 1, in <module>
c.pop()
TypeError: pop expected at least 1 argument, got 0
>>> c.pop('Dream') #成对删除,但返回值
'Have an AGI'
>>> print(a,b,c)
[0, 1, 2] {1, 2, 3, 4} {'Spacecraft': 'Natural Selection'}
计算
再次diss我那烂烂的教材,默认情况都没有写清楚!
>>> a={2:1,3:2,5:4}
>>> print(sum(a),sum(a.values()),sum(a.keys()))
10 7 10 #由此我们可以看出,默认是计算[键]
>>> print(max(a),max(a.values()),max(a.keys()))
5 4 5
关于复制与id:
只有直接的赋值,id不变,且联动 完全相同,不管是先者变还是或者变
用切片[:],s.copy(),copy.copy()(要import copy)地址会变