12.12
tuple(元组)
定义元组的方式是使用小括号()将元组内的元素括起来,tuple中的每一个元素都不可被改变
count()方法用来统计tuple中某个元素出现的次数,例:
T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
print(T.count(1)) #3
print(T.count(5)) #1
print(T.count(8)) #0
index()方法可以返回指定元素的下标,当一个元素多次重复出现时,则返回第一次出现的下标位置,例:
T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
T.index(9) #10
T.index(1) #0
T.index(8) #报错
创建包含一个元素的tuple
T = (1) #()表示优先计算
print(T) #1
T = (1,)
print(T) #(1,)
可变tuple:数据类型不可替换,组合数据类型不受约束
T = (1, ‘CH’, [3, 4])
L = T[2]
print(L) #[3, 4]
L[1] = 40
print(L) #[3, 40]
print(T) #(1, ‘CH’, [3, 40])
若直接替换list报错
dict(字典)
特点:占用内存大,查找速度快,元素无序,key不可变(list不可作为其key)
每一项包含一个key和一个value,key和value一一对应
d = {'Alice' : 45, 'Bob' : 60, 'Candy' : 75, 'David' : 86, 'Ellena' : 49}
print(d['Bob']) #60
if 'Alice' in d:
print(d['Alice']) #45
if 'Dodo' in d:
print(d['Dodo']) #无结果
print(d.get('Alice')) #45
print(d.get('Dodo')) #None
更新元素:当key不存在时,往dict中添加对应的key:value元素,
当key存在时,会更新dict,用新的value替换原来的value
d[‘Mimi] = 72 #添加新元素
d[‘Dodo’] = [72, 73] #可以是任意类型
d[‘Mimi’].append(75) #向类型是list的value中添加
删除元素:key不存在报错
d.pop(‘Alice’) #返回值为被删除值
d.popitem() #随机删除,返回值为删除值
del d[‘Alice’] #无返回
del d #清除所有元素
d.clear() #清除所有元素
遍历
for key in d: #遍历所有的key
......
for key, value in d.items(): #遍历dict中所有的元素
......
获取dict中所有的key
for key in d.keys():
获取dict中所有的value
for key in d.values():
set容器
和list相似,但元素不允许重复,元素无顺序
s = set([1, 4, 3, 2, 5, 4, 2, 3, 1])
print(s) #{1, 2, 3, 4, 5}
判断元素
s = set([‘A’,’B’,’C’])
‘A’ in s #True
‘D’ in s #False
添加元素
s = set([‘A’,’B’,’C’])
s.add(‘E’) #单个添加
s.update([‘F’, ’G’]) #多个添加
删除元素
s.remove(‘A’) #若无该元素,则报错
s.discard(‘A’) #若无该元素,不报错
s.clear() #清除所有元素
判断子集或超集
s1 = set([1, 2, 3])
s1 = set([1, 2, 3, 4, 5])
s1.issubset(s2) #Ture,s1是s2的子集
S2.issubset(s1) #Ture,s1是s2的超集
判断是否重合
s1 = set([1, 2, 3])
s1 = set([2, 3, 4, 5])
s1.isdisjoint(s2) #False
函数
定义函数
def 函数名(参数):
......
判断参数类型
isinstance(100,int) #True
isinstance(100,str) #False
默认参数
def power(x, n = 2): #x为必须参数,若未传n参数的值,n默认为2
......
可变参数,把可变参数定义为数组
def a(*args):
可变关键字参数,通过关键字的名字key找到对应的参数值
def info(**kwargs):
print('name:{} ,gender:{}'.format(kwargs.get('name'), kwargs.get('gender')))
info(name = 'Alice', gender = 'girl')
类
class A:
def __init__(self, a, b):
self.a = a
self.b = b
def c(self):
......
方法__init__()每创建一个实例,自动运行它,形参self必不可少,必须位于其他形参前,让实例能访问类中的属性和方法,每创建实例只需两个形参提供值,self.a = a获取与形参a相关联的值,并将其赋给变量a,称a为属性,还定义了一种方法,只有一个形参self,之后创建的实例都可访问这些方法