集合
'''
三大特性:
确定性、互异性(唯一性)、无序性。
确定性 集合的元素不能是可变类型
'''
问题一:前面学习的列表中可以插入重复的元素吗?
两种定义方法:
set() #类型转换
{'少年们','你们是最棒的!'} #直接定义
#不可添加可变类型
栗子:
>>> a = {'61班','你们是最棒的!'}
>>> b = set(['a','b','c'])
三种运算
s1 & s2 交集
s1 | s2 并集
s1 - s2 差集
>>> s1 = {'a','b','c'}
>>> s2 = {'a','c','d'}
>>> s1&s2
{'a', 'c'}
>>> s1|s2
{'b', 'c', 'd', 'a'}
>>> s1-s2
{'b'}
>>>
set | 方法 | 说明 | 英文说明 |
---|---|---|---|
增 | add |
将元素添加到集合中。 | Add an element to a set. |
删 | pop |
删除并返回任意set元素。 | Remove and return an arbitrary set element. |
remove |
从集合中删除一个元素;它必须是成员。 | Remove an element from a set; it must be a member. | |
改 | update |
用本身和其他元素的并集更新集合。 | Update a set with the union of itself and others. |
查 | isdisjoint |
如果两个集合的交点为空,则返回True。 | Return True if two sets have a null intersection. |
issubset |
报告另一个集合是否包含该集合。 | Report whether another set contains this set. | |
issuperset |
报告此集合是否包含另一个集合。 | Report whether this set contains another set. |
1、增
add
>>> s1.add('f')
1、删
# 当集合是由列表和元组组成时,set.pop()是从左边删除元素的如下:
# 对于是字典和字符转换的集合是随机删除元素的.
>>> a = set('abcdefgh')
>>> a
{'e', 'f', 'a', 'h', 'b', 'c', 'g', 'd'}
>>> a.pop()
'e'
>>> a.pop()
'f'
>>> fruits = {"apple", "banana", "cherry"}
>>> fruits.remove("banana")
>>> fruits
{'apple', 'cherry'}
3、改
update(可迭代对象),把每一个元素拆开添加
4、查
isdisjoint 有交集返回False
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
z = x.isdisjoint(y)
print(z)
issubset 判断是否包含于
a = {1,2,3,4,5,6}
b = {1,2,3,4}
print(b.issubset(a)) # T a的子集是b吗? b是a的子集吗?
issuperset 判断是否包含
字典
两种定义方法
di = {'name':'浩天', 'height':'183cm'} 键值对形式
di2 = dict(a=1, b=2) 使用dict函数
修改和添加:
di['a'] = 2 有这个键就修改,没有就添加
di['b'] = 3
dict | 方法 | 注释 | 英文说明 |
---|---|---|---|
增 | setdefault |
有则查,无则增 | Insert key with a value of default if key is not in the dictionary. Return the value for key if key is in the dictionary, else default. |
改 | update |
有则改,无则增 | D.update([E, ]**F) -> None. Update D from dict/iterable E and F. |
删 | pop |
查出指定key的键值对 | D.pop(k[,d]) -> v, remove specified key and return the corresponding value. |
popitem |
返回并删除字典中的最后一对键和值 | D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple; but raise KeyError if D is empty. | |
查 | get |
获取指定key对应的value,如果key不存在返回None | Return the value for key if key is in the dictionary, else default. |
keys |
取出所有的key | D.keys() -> a set-like object providing a view on D’s keys. | |
values |
取出所有的值 | D.values() -> an object providing a view on D’s values. | |
items |
取出所有的键值对 | D.items() -> a set-like object providing a view on D’s items. |
1、增
setdefault 有则查,无则增
>>> a.setdefault('a')
2
>>> a.setdefault('c')
>>> a
{'a': 2, 'b': 3, 'c': None}
>>> a.setdefault('d',3)
3
>>> a
{'a': 2, 'b': 3, 'c': None, 'd': 3}
2、删
"clear 清空字典 pop 弹出指定key的键值对 popitem 返回并删除字典中的最后一对键和值"
3、改
"update 更新字典、将原字典和新字典整合,key重复新的覆盖老的"
"有则改无则增"
4、查
"get 获取指定key 对应的value,如果key不存在放回none keys 取出所有的key values 取出所有的值 items 取出所有的键值对"
特性:键(key)唯一性:s字典中的键(key)具有唯一性,不存在两个相同的键(key)
逻辑运算
运算符 | 描述 |
---|---|
== |
等于 |
!= |
不等于 |
< |
小于 |
> |
大于 |
<= |
小于等于 |
>= |
大于等于 |
and |
与 |
or |
或 |
not |
非 |
查看对象类型: type(object) 注意:object后面会讲的 isinstance(object,对象类型)
运算符优先级
运算符 | 描述 |
---|---|
** |
幂运算 |
+ 、-
|
一元运算符(正负号) |
% 、/ 、*
|
算术运算符 |
+ 、-
|
算术运算符 |
< 、> 、<= 、>= 、== 、!=
|
比较运算符 |
= 、/= 、-= 、+= 、*= 、%= 、**= 、//=
|
赋值运算符 |
is 、is not
|
身份运算符 |
in 、not in
|
成员运算符 |
not > and > or
|
逻辑运算符 |