Python学习【day04】- Python基础(集合、函数)

集合

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 
 4 # set集合 只可放不可变的数据类型,本身是可变数据类型,无序
 5 
 6 # s = {1,2,3,[1,2,3],"abc",{'k':'v'},(1,2,3,)}
 7 s = {1,2,3,"abc",(1,2,3,)}
 8 print(s)
 9 
10 # 拷贝
11 ss = s.copy()
12 print(ss)
13 
14 # 添加, 一次只可添加单个元素,若参数为可迭代类型 则当作整个元素添加
15 s.add("123")
16 print(s)
17 
18 # 清除
19 s.clear()
20 print(s)
21 
22 s1 = {"a", "b", "c"}
23 s2 = {"b", "c", "d"}
24 
25 # 获取差集,参数只可为可迭代参数类型,可使用"-"代替
26 s = s1.difference(s2)
27 print(s, s1, s2, sep="\t")
28 print(s1 - s2)
29 
30 # 获取差集 并更新原来的集合
31 # s1.difference_update(["a", "b"])
32 # print(s1)
33 
34 # 移除节点信息 若节点不存在 不做任何处理
35 # s1.discard("a")
36 # print(s1)
37 # s1.discard("d")
38 # print(s1)
39 
40 # 交集 &
41 s = s1.intersection(s2)
42 print(s)
43 print(s1&s2)
44 
45 # 获取交集并更新
46 # s1.intersection_update("a")
47 # print(s1)
48 
49 # 两个集合是否有一个为空
50 v = set().isdisjoint({})
51 print(v)
52 
53 # s1是否为传入参数的子集
54 v = s1.issubset("abc")
55 print(v)
56 
57 # s1是否为传入参数的父级
58 v = s1.issuperset("abcd")
59 print(v)
60 
61 # 删除 随机
62 # s1.pop()
63 # print(s1)
64 
65 # 删除集合中的一个元素 若元素不存在则报错
66 # s1.remove("a")
67 # print(s1)
68 
69 print(s1)
70 # 交叉补集 "^" 获取不是两个集合共有的
71 s = s1.symmetric_difference(s2)
72 print(s)
73 print(s1^s2)
74 # 获取交叉补集并更新
75 # s1.symmetric_difference_update(s2)
76 # print(s1)
77 
78 # 并集 "|"
79 s = s1.union(s2)
80 print(s)
81 print(s1|s2)
82 
83 # 添加 可批量添加
84 s1.update(["ef", "gg"])
85 print(s1)

函数

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 
 4 # def test() :
 5 #     print("test Method")
 6 # test()
 7 
 8 """
 9  同名函数 后面的会覆盖前面的
10 """
11 def test(x) :
12     print(x)
13 # test()
14 test(1)
15 
16 """
17  位置优先级要高于参数名赋值
18 """
19 def test(x, y, z) :
20     print(x)
21     print(y)
22     print(z)
23 test(1,2,3)
24 test(x=1,z=2,y=4)
25 test(1,z=2,y=8)
26 # test(1,x=1,y=1,z=3) #报错
27 
28 """
29  * 相当于列表 可传入多个值
30 """
31 def test(x, *y) :
32     print(x)
33     print(*y)
34 test("a", ["bdc", "aaa"], ["a", "b"])
35 
36 """
37  ** 相当于字典
38  *类型参数 必须在 **类型参数前
39  必传参数不可当作最后一个参数传入
40 """
41 def test(x, *y, **z) :
42     print(x)
43     print(y)
44     print(z, z.get("k"))
45 test(1,1,2,{'k':'v'},k=1)
46 
47 # def test(x, **y, *z) :
48 #     pass
49 
50 # def test (*x, **y, z) :
51 #     pass
52 
53 #必须指定以字典方式传入y值
54 def test(*x, y, **z) :
55     print("Method")
56     print(x)
57     print(y)
58     print(z)
59     pass
60 # test(1,1,1,y=1,y=2)
61 test(1,1,1,d=1,y=2)
posted @ 2018-09-14 08:13  公子奇的博客  阅读(173)  评论(0编辑  收藏  举报