1.集合
创建:{} set([]) 注意:创建空的集合要用set()
特点:元素唯一,无序
运算: & 交集 | 并集 - 差集
方法:
s.add(x) 添加单个元素
s.update() 添加多个元素
s.remove() 移除元素
s.clear() 清空集合
2.字典
创建: {key:value} (大括号创建字典的键时要加引号)
dict(key=value) (括号里赋值方式,名字=对象,不要引号)
字典里的键和值用‘:’隔开,一对键和值组成一个项,项和项之间用‘,’隔开
特点:
键唯一,重复会被重新复制
无序
添加和取值
cidt[key]=value key存在则修改值,没有则添加
属性方法
.update({ }) 在字典中添加多个项
.items() 返回字典的各个项
.keys() 返回字典的键
.values() 返回字典的值
.get(k) 如果键k在,返回键k的值,不存在则返回None
.get(k,x) 如果键k在,返回键k的值,不存在则返回x
.pop(k) 返回并移除键k所对应的元素,不存在则抛出异常
.pop(k,x) 返回并移除键k所对应的元素,不存在则返回x
总结:
key唯一,故可以是数字,字符串,元组
总结:
可变对象:list set dict
不可变对象: str tuple
3.运算符
算术运算符:+ ,- , *, /, %, **,//
赋值运算符:= ,+=,-=, *=,/=,%=, **=
比较运算符:==,!=, >, <, >=,<=
成员运算符:in , not in
身份运算符:is , is not
判断两个名字是否指向同一个对象,当id相同时返回True(==比较运算是判断的值)
逻辑运算符:and,or,not
and(与) 两个条件都满足时才返回True
or(或) 有一个条件满足了就返回True
not(非) 取反
计算顺序:默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号
结合规律:运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算
'''
** #幂运算
+ - * / % #算术运算符
< > <= >= #比较运算符
== != #比较运算符
= %= /= -= += *= **= #赋值运算符
is is not #身份运算符
in not in #成员运算符
not > and > or #逻辑运算符
'''
info = {'name':'ABC','age':18,'height':170} print(info['name']) #查找key print(info.keys()) #查找所有key print(info.values()) #查找所有value info = {'name':'ABC','age':18,'height':170} info['age'] = 17 #替换 print(info) info = {'name':'ABC','age':18,'height':170} info.pop('height') #删除 print(info) info = {'name':'ABC','age':18,'height':170,'child':{'name':'doudou','age':2,'height':90}} print(info['child']['age']) #取嵌套元素 info = {'name':'ABC','age':18,'height':170} info.update({'child':{'name':'doudou','age':2,'height':90}}) #增加 print(info)
作业
#python基础 第四次作业 #1.有两个列表 x = [1,2,3,'a','b','c'] y = ['a','b','c'] # 找出x,y列表中,共有元素 x = [1,2,3,'a','b','c'] y = ['a','b','c'] print(set(x)&set(y)) #2.新建一个字典,用3种方法往字典里面插入值; #用 4 种方法取出values,用2种方法取出key di = {} di = di.fromkeys(['a','b'],123) print(di) di.setdefault('c',456) print(di) di.update({'d':789,'e':111}) print(di) print(di['a']) print(di.get('b')) print(di.pop('c')) print(di.values()) print(di.keys()) print(list(di.items())[0][0]) #3. 定义这4个变量,为何有的会报错?分析结果, #解释出现这种结果的原因。 #s1 = {1,['a','b','c']} #报错原因,集合里的元素要可哈希,列表是不可哈希的 #s2 = {1,('a','b','c')} #元组是可以哈希的,hash(('a','b','c')) #di1 = { 'a':'test',('a','b'):'test'} #di2 = { 'a':'test',{'a','b'}:'test'} #报错原因,字典的键要可哈希,集合是不可哈希的