liyihao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

老习惯原链:http://www.cnblogs.com/vamei/archive/2012/06/02/2532274.html

笔记:

 1 #第10节
 2 #dir 用来查询一个类或者对象的所有属性
 3 print (dir(list))
 4 #输出结果:
 5 #['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
 6 print (help(list))
 7 #输出结果
 8 '''
 9 class list(object):
10   |  list() -> new empty list
11   |  list(iterable) -> new list initialized from iterable's items
12 类class
13 list()-一个空的list
14 list(iterable)-一个初始化的list从 可迭代的条目
15 剩下都是昨天学习的方法定义,类方法定义记得加self
16       __add__(self, value, /)
17           return self + value
18 一个简单的add定义
19 '''
20 
21 n2 = []
22 #上面可以看到list 是一个class
23 n1 = [1, 2, 5, 3, 5]
24 #看了看list的help后面有介绍到list常用方法
25 n1.append(8)
26 #在n1这个list 的末尾加入一个元素8
27 #n1 就变成了[1, 2, 5, 3, 5, 8]
28 n1.copy()
29 #对n1进行复制
30 #先定义n2 = n1.copy
31 #n2 这个list 的内容就是从n1复制过来的,[1, 2, 5, 3, 5]
32 print (n1.count(5))
33 #表示计数,5这个元素有多少个
34 n2.extend(n1)
35 #表示在列表末尾一次性追加另一个list的多个值,就是n2的末尾加n1的值,列表扩展
36 #输出结果:n2 = [1, 2, 5, 3, 5, 1, 2, 5, 3, 5]
37 print (n1.index(3))
38 #查询n1 元素4 的下标,因为没有4,改3
39 n1.insert(4, 5)
40 #在n1下标为4的位置插入5,原来在4的元素下标现在就是5了
41 print (n1.pop())
42 #去除最后一个元素,并将该元素返回
43 n1.remove(2)
44 #从n1中去除第一个2
45 #不知道怎么去除第二个2
46 n1.reverse()
47 #对n1进行反向排序
48 n1.sort()
49 #对n1的元素排序
50 #后面几个由于list 元素已经开始变化,就没有输出结果
51 n1.clear()
52 #清空n1 的元素,输出结果就是空的list,[]
53 #可以最后再执行
54 
55 
56 #这里作者想要表达   运算符  是定义在类内部的方法
57 #在上面看到list的属性里面有add,可以执行list相加
58 m1 = [1, 2, 3]
59 m2 = [4, 5, 6]
60 print (m1 + m2)
61 #输出结果:[1, 2, 3, 4, 5, 6]
62 #可以看到list是可以相加的
63 
64 m3 = [1]
65 #print (m1 -m3)
66 #这个是会报错的
67 
68 
69 #没有减的操作,定义一个操作
70 class superList(list):#superList从list继承
71     def __sub__(self, b):#定义__sub__(),减的动作
72         a = self[:]#self 是对象,list[:]表示list所有元素
73         b = b[:]
74         if len(b) > 0:#len()表示list元素总数
75             element_b = b.pop()#b.pop是移除最后一个并返回,然后赋值给element_b
76             if element_b in a:#如果b list移除的元素返回赋值给 新的变量 element_b在a list里面
77                 a.remove(element_b)#从a list 里面移除这个元素
78         return a#返回a list
79     
80 #从而达到了list相减的目的
81 #类方法定义需要self
82 
83 print (superList(m1) - superList(m3))
84 #输出:[2, 3]

 

posted on 2017-10-12 13:30  liyihao  阅读(191)  评论(0)    收藏  举报