Python集合字典运算符

1.集合2.字典3.运算符优先级

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'}    #报错原因,字典的键要可哈希,集合是不可哈希的

  

 

posted on 2018-03-01 16:59  20许创杰201801073  阅读(1296)  评论(0编辑  收藏  举报