python学习系列---list,tuple,dict,set内置方法

来源:互联网 发布:淘宝套现容易被发现吗 编辑:程序博客网 时间:2024/06/07 03:06

1.  list的内置方法。

append()    ​    ​往列表尾部添加元素

copy()    ​    ​    ​拷贝列表(浅拷贝)

count()    ​    ​  判断列表中某个元素出现的次数

extend()    ​    ​合并两个列表或元组

index()    ​    ​   获取元素位置

insert()    ​    ​    ​指定下标将给定元素插入列表

pop()    ​    ​    ​ 移除列表中项,可加入元素下标实现特定删除

remove()    ​    ​指定元素的值删除列表中元素,pop是指定下标删除

reverse()    ​    ​反转列表元素

sort()    ​    ​    ​ 输出有序列表


2.  tuple的内置方法。元组的好多法与列表是相同的,这里只列出一些不同的方法

tuple()    ​    ​    ​将列表转换成元组


3. dict内置方法

字典是key-value对的集合,字典中的元素是无序的。

clear() 清空所有元素

copy() 浅拷贝

fromkeys() 为给定的key列表生成新的字典

get() 获取给定key的value,如果没有key则返回None. 还可以指定该key的默认值。

items() 获取所有key,value对

keys() 返回字典中所有的key列表

values() 返回字典中所有的value列表

pop() 删除一个字典中的元素,至少需要传入一个key作为参数

popitem() 删除一个字典中的元素,不需要传入参数,随机删除

setdefault() 为字典的某个key设置默认值None

update() 更新字典中给定键值对,接受一个键值对的字典作为参数,也可以添加键值对


4. set内置方法

集合是无序且不重复的序列。它的创建方式为set(),它没有像列表和字典那样的符号化语法糖。

add() 向集合中添加一个元素,如果元素已在则忽略

clear() 清空集合中所有元素

copy() 集合的浅拷贝

discard() 丢弃一个元素,如果元素不存在,什么也不做

remove() 移除一个元素,如果元素不存在,抛出KeyError异常

pop() 删除并返回一个任意元素,如果集合为空,抛出KeyError异常

issubset() 判断目标集合是参数集合的子集

issuperset() 判断目标集合是参数集合的超集

union() 返回两个集合的并集

update() 得到两个集合的并集,并将目标集合更新为这个并集

isdisjiont() 判断两个集合是否无交集,如果无交集则返回True

intersection() 返回两个或者多个集合的交集

intersection_update()得到两个集合的交集,并将目标集合更新为这个交集

difference() 返回两个集合的差集

difference_update()得到两个集合的差集,并将目标集合更新为这个差集

symmetric_difference()返回两个集合的对称差集

symmetric_difference_update()得到两个集合的对称差集,并将目标集合更新为这个对称差集


下面通过实际例子来看一下涉及两个集合之间比较的操作方法。在操作集合之前,先回顾一下集合的并集,交集,差集以及对称差集的概念。

并集就是把两个set的所有元素合并到一起, 并且去除掉重复的元素.

交集就是同时属于两个集合的元素,也就是同时属于setA和setB的元素.

差集就是两个集之间的差. 比如 A - B 就是只属于A但不属于B的元素,也就是去掉A中与B相同的元素.反过来 B - A 就是去掉B中与A相同的元素.

对称差指只属于A或者只属于B,但不同时属于A和B的.实际上就是A和B的并集与A和B交集的差集


下面的例子有两个集合:目标集合P和参数集合Q.

>>> p 目标集合p
set([1,2,3,4,5])
>>> q 参数集合q
set([4,5,6,7,8])
>>> p.union(q) union()返回两个集合的并集,生成新的集合
set([1,2,3,4,5,6,7,8])
>>> p,q 目标集合p未变, 参数集合q未变
set([1,2,3,4,5]) , set(['c', 'e', 'd', 'f'])
>>> p.update(q) update()将两个集合的并集更新到目标集合p
>>> p 目标集合p变为两者的并集
set([1,2,3,4,5,6,7,8])
>>> q 参数集合q未变
set([4,5,6,7,8])

>>> p.issubset(q) 判断目标集合p是参数集合q的子集
False
>>> p.issuperset(q) 判断目标集合p是参数集合q的超集
True

>>> p.issubset(p) 判断p是它自己的子集
True
>>> p.issuperset(p) 判断p是它自己的超集
True
>>> 

>>> p=set([1,2,3,4,5])
>>> q=set([4,5,6,7,8])
>>> p,q 恢复p,q
(set([1, 2, 3, 4, 5]), set([8, 4, 5, 6, 7])) 

>>> p.isdisjoint(q)判断p和q是否无交集
False
>>> p.intersection(q) 返回p和q的交集
set([4, 5])

>>> p,qp和q都没有改变
(set([1, 2, 3, 4, 5]), set([8, 4, 5, 6, 7]))
>>> p.intersection_update(q) 将p更新为p和q的交集
>>> p p变为p和q的交集
set([4, 5])
>>> q q未变
set([8, 4, 5, 6, 7])

>>> p,q恢复p,q
(set([1, 2, 3, 4, 5]), set([8, 4, 5, 6, 7])) 

>>> p.difference(q)返回p和q的差集
set([1, 2, 3])
>>> p,q p和q都没有改变
(set([1, 2, 3, 4, 5]), set([8, 4, 5, 6, 7]))
>>> p.difference_update(q) 将p更新为p和q的差集
>>> p p变为p和q的差集
set([1, 2, 3])
>>> q q未变
set([8, 4, 5, 6, 7])

>>> p,q恢复p,q
(set([1, 2, 3, 4, 5]), set([8, 4, 5, 6, 7])) 

>>> p.symmetric_difference(q)返回p和q的对称差集
set([1, 2, 3, 6, 7, 8])
>>> p,qp和q都没有改变
(set([1, 2, 3, 4, 5]), set([8, 4, 5, 6, 7]))
>>> p.symmetric_difference_update(q) 将p更新为p和q的对称差集
>>> p p变为p和q的对称差集
set([1, 2, 3, 6, 7, 8])
>>> q q未变
set([8, 4, 5, 6, 7])

原创粉丝点击