day4

复习

  • 格式化字符串

  • %

  • format

  • 列表

  • 假如统计学生信息,包括学号,姓名,年龄

字典

字典是列表以为python中使用最灵活的内置数据类型

字典是一种可变的数据类型

和列表的区别:

  • 列表有序的,字典无序

  • 列表通过索引(偏移)访问元素,字典通过KEY访问元素

  • 字典的基本格式:

    dic={key1:value1,key2:value2,…}

    值可以取任意数据类型,但键不可以,必须为不可变数据类型,即key必须可哈希

    哈希->不可变

​ 特点:

  • key:value,键值对之间用冒号(:)链接

  • key:value 组成字典 的一个元素

  • 键值对之间用逗号隔开

  • 整个字典用花括号{{}}包裹

空字典的创建

dic={}
print(type(dic))
key1,key2,key3=1,2,3
value1,value2,value3=3,2,1
dic ={key1:value1,key2:value2,key3:value3}
dic = dict(id=20190101,name='Tom',age=19)

创建多元素字典

info={“id”:123,“name”:‘tom’,“age”:19}

强转



 zip()
key=("1","2","3")
value=(1,2,3)
tp=dict(zip(key,value))
print(tp,type(tp))

通过字典的fromkeys方法创建字典

格式:

dict.fromkeys(seq,val=None)

  • 创建并返回一个字典

    • 以seq中的元素作为该字典的键
    • val的值作为该字典中所有键对应的初始值;如不提供默认None
  • dict.fromkeys([],value) #可以把value的值分别赋给seq列表中的所有元素,并组成字典

字典的常见操作

  • 直接添加键值对(dic[key]=value)
    • 通过使用变量名[“键”]=“值”
      • 如果Key不存在,则新建
      • 若存在则更新
  • dict.update(dic)
  • 把字典dic中的键值对(key:value)更新到dict中
  • 两个字典的键完全不同,则将dic的键值对全部添加到dict中
  • 存在相同的键,则更新dict中对应的值
习题
list1=[]
while True:
    yorno=input("是否输入字典?")
    if yorno=="y":
     id1=input("请输入您的id:")
     name1=input('请输入您的name:')
     age1=input("请输入您的年龄:")
     list1.append({'id':id1,'name':name1,'age':age1})
    else:
        print(list1)
        break

  • 直接修改
    • dic[‘id’]=20190201
  • dict.setdefault()
    • 键存在,不改动,返回字典中的值
    • 不存在,在字典中添加对应的键值对,并返回对应的值

  • dict.pop

    • 格式:dict.pop(key,[default])
      • 如果key存在与dict中,删除并返回dict[key]
      • 如果不存在,给出默认值则返回默认值,未给出默认值则报错
  • dict.popitem()

    • 随机删除一对键值对

    • 有返回值,元组

    • dict={“id”:20190101,“name”:“tom”,“age”:22}

    • key,value=dict.popitem()

    • print(dict)

  • deal dict[key]

    • deal dict[age]
  • dict.clear()

    • print(dict.clear())
    • 将元素清除,保留字典本身

  • 直接通过字典的key范文value

    dic={1:2,2:3,3:4}
    print(dic['id'])
    print(dic['job'])
    
  • dict.get()访问value

  • 语法格式 dict.get(key[,default])

  • 不确定字典中是否存在某个键而又想对其进行操作,比如获取值–>get 方法

  • 当key不存在的时候,不会抛出异常,返回none

遍历

  • dict.keys()

  • dict.values()

  • dict.items()

    dic={'id':20190101,"name":"tom","age":22}
    for key in dic.keys():
        print(key)
    for value in dic.values():
        print(value)
    for item in dic.items():
        print(item,end=' ')
    for key,value in dic.items():
        print(key,":",value)
    • 习题

      dic1={}
      list1=[]
      list2=[]
      li=[23,34,45,22,67,89,90,99,66,45]
      for i in li:
          if i>=60:
              list1.append(i)
          else:
              list2.append(i)
      dic1['>=60']=list1
      dic1['<60']=list2
      print(dic1)

      集合

      • 无序
      • 不可重复
      • 不可更改
        • 内部的元素是可哈希的
        • 集合本身是不可哈希的
    • 用{}括起来的是单元素数据集

    • 用途

      • 去重(列表—>集合,自动去重)
      • 关系测试

集合的创建

空集合的创建

st=set()
st
set()
st={1,2,3,4,5}
st={1,3,4,[1,3,2]} #错误,集合内不能有可变元素

强转
sr='hello'
t1=set(sr)
print(t1)
t2=set(dic1)
print(t2)


{'o', 'h', 'l', 'e'}
{'age', 'id', 'name'}

集合的基本操作

  • set,add()
  • set,update()
  • set.pop() 删除排序最小的一个元素

  • set.discard() ,移除元素,不存在也不会报错

  • set.remove() 移除元素,不存在则报错

  • del set

  • set.clear()

不可更改

不可查询

遍历

st={'cit','asdas','sdad'}
for i in st:
    print(i)
for i in enumerate(st):
    print(i)

集合的基本运算

a=set("abcd")
b=set("abc")
c=set("de")
print(b<a)
print(c<a)
交集
  • &

  • set.intersection(b)

    a&b

    ->abc

    a.intersection(b)

    ->abc

并集
  • |

  • set. union()

    a|b

    ->abcd

    a.union©

    ->abcde

差集
  • set.diference()

    a-b

    ->d

    a.difference(b)

    ->d

c=set(“de”)
print(b<a)
print(c<a)




#### 交集

- &

- set.intersection(b)

  a&b

  ->abc

  a.intersection(b)

  ->abc

#### 并集

- |

- set. union()

  a|b

  ->abcd

  a.union(c)

  ->abcde

#### 差集

- -

- set.diference()

  a-b

  ->d

  a.difference(b)

  ->d

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值