python 系列均为笔记。都是转载!!!!!!!!!!!!!!!!!!!
比较
== 值比较
is 对象比较
列表的内置方法
下图中的方法是列表专有的内置方法,请熟记于心。
方法 作用
append(obj) 在列表末尾添加新的对象
count(obj) 统计某个元素在列表中出现的次数
extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
index(obj) 从列表中找出某个值第一个匹配项的索引位置
insert(index, obj) 将对象插入列表
pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove(obj) 移除列表中某个值的第一个匹配项
reverse() 反向列表中元素
sort([func]) 对原列表进行排序
copy() 复制列表
clear() 清空列表,等于del lis[:]
注意:其中的类似 append,insert, remove ,reverse, pop或 sort 等方法会修改列表本身,
并且没有返回值(严格的说是返回None)。
列表当做堆栈
出栈 pop()
入栈 append()
元组
元组只保证它的一级子元素不可变,对于嵌套的元素内部,不保证不可变!
集合
set集合是一个无序, 不重复 元素的集
集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ,因为后者创建的是一个空字典。
集合除了在形式上最外层用的也是花括号外,其它的和字典没有关系。
集合数据类型的核心在于自动去重。很多时候,这能给你省不少事。
>>> s = set([1,1,2,3,3,4])
>>> s
{1, 2, 3, 4} # 自动去重
>>> set("it is a nice day") # 对于字符串,集合会把它一个一个拆开,然后去重
{'s', 'e', 'y', 't', 'c', 'n', ' ', 'd', 'i', 'a'}
add:
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s = {1, 2, 3, 4}
>>> s
{1, 2, 3, 4}
>>> s.add(5)
>>> s
{1, 2, 3, 4, 5}
>>> s.add(5)
>>> s
{1, 2, 3, 4, 5}
update:
可以通过update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重。
>>> s
{1, 2, 3, 4, 5}
>>> s.update("hello")
>>> s
{1, 2, 3, 4, 5, 'e', 'o', 'l', 'h'}
remove:
通过remove(key)方法删除指定元素,或者使用pop()方法。注意,集合的pop方法无法设置参数,删除指定的元素:
>>> s
{1, 2, 3, 4, 5, 'e', 'o', 'l', 'h'}
>>> s.remove("l")
>>> s
{1, 2, 3, 4, 5, 'e', 'o', 'h'}
>>> s.pop()
1
>>> s
{2, 3, 4, 5, 'e', 'o', 'h'}
>>> s.pop(3)
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
s.pop(3)
TypeError: pop() takes no arguments (1 given)
集合既不支持下标索引也不支持字典那样的通过键获取值。
>>> dir(set)
['__and__', '__class__', '__contains__', '__delattr__',
'__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__gt__', '__hash__', '__iand__', '__init__',
'__init_subclass__', '__ior__', '__isub__', '__iter__',
'__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__',
'__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__',
'__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__',
'__str__', '__sub__', '__subclasshook__', '__xor__', 'add',
'clear', 'copy', 'difference', 'difference_update', 'discard',
'intersection', 'intersection_update', 'isdisjoint', 'issubset',
'issuperset', 'pop', 'remove', 'symmetric_difference',
'symmetric_difference_update', 'union', 'update']
除了add、clear、copy、pop、remove、update等集合常规操作,剩下的全是数学意义上的集合操作,交并差等等。
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 删除重复的
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 检测成员
True
>>> 'crabgrass' in basket
False
>>> # 以下演示了两个集合的交、并、差操作
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a # a 中唯一的字母
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 在 a 中的字母,但不在 b 中
{'r', 'd', 'b'}
>>> a | b # 在 a 或 b 中的字母
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 在 a 和 b 中都有的字母
{'a', 'c'}
>>> a ^ b # 在 a 或 b 中的字母,但不同时在 a 和 b 中
{'r', 'd', 'b', 'm', 'z', 'l'}
集合数据类型属于Python内置的数据类型,但不被重视,在很多书籍中甚至都看不到一点介绍。其实,集合是一种非常有用的数据结构,它的去重和集合运算是其它内置类型都不具备的功能,在很多场合有着非常重要的作用,比如网络爬虫。
本文详细介绍了Python中列表的方法及应用,包括值比较、对象比较、内置方法等,并深入探讨了集合的特点及其常用操作,如添加、删除元素及集合运算。
5403

被折叠的 条评论
为什么被折叠?



