一 set 集合 (无序且不重复的元素集合)
基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 删除一项: t.discard(‘H’) t.remove('H')
区别:如果删除在集合中没有,discard 不会报错, remove 报错
t.pop() # 不加参数
随机删除,并返回删除的值
len(s)
set 的长度
x in s
测试 x 是否是 s 的成员
x not in s
测试 x 是否不是 s 的成员
s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中
s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中
s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy()
返回 set “s”的一个浅复制
二 三元运算 (if else的简写)
1 result = 30 if a>10 else 50
2
3 #当a》10,result =30,否则 a =50
三 lambda表达式(可以接两个参数,只能用一行)
1 f1 = lambda a, b : a + b + 100
四 函数
I 返回值
如果return没有指定返回值,是none.
1 def f1():
2 print(123)
3 return '111'
4 #在函数,一旦执行return,函数执行过程立即终止,下面的print不会再执行
5 print(456)
II 参数
1 普通参数(严格按照顺序,将实际参数赋值给形式参数)
2 默认参数(必须放置在参数列表的最后)
3 指定参数(将实际参数赋值给制定的形式参数)
4 动态参数:
(1)* 默认将传入的参数,全部放置在元祖中
1 def f1(*args):
2 print(args)
3
4 li = [11, 'lala']
5 f1(li)
6 f1(*li)
第一个结果是([11, 'lala']), 把列表当作一个元素
第二个结果是(11, ‘lala’), 把列表里的所有元素分别放入元祖里
(2)** 默认将传入的参数,全部放置在字典中
1 def f1(**kwargs):
2 print(kwargs)
3 f1(n1 = 'nikita')
结果是{‘n1’:'nikita'}
5 万能参数
def f1(*args, **kwargs)
III 其他
1 局部变量和全局变量
只有在函数里面用的是局部变量,所有作用域都可用的是全局变量(注意用大写),在函数里面用global,可以将局部变全局变量。
NAME = 'lulu'
def f1():
age = 10
#把name的全局变量改成nikita,以下函数的name都为nikita
global NAME
NAME = 'nikita'
print (age, NAME)
如果全局变量是列表,字典,只能修改,不能重新赋值。即是不能用global。
基本操作:
t.add('x') # 添加一项
s.update([10,37,42]) # 在s中添加多项
删除一项:
t.discard(‘H’)
t.remove('H')
区别:如果删除在集合中没有,discard 不会报错, remove 报错
t.pop() # 不加参数
随机删除,并返回删除的值
len(s)
set 的长度
x in s
测试 x 是否是 s 的成员
x not in s
测试 x 是否不是 s 的成员
s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中
s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中
s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy()
返回 set “s”的一个浅复制