5-python-bas

Python 基础

  1. 元素集合Set

    1. 特性

      set是一个无序且不重复的元素集合。

      集合对象是一组无序排列的可哈希(唯一)的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。

      set和dict一样,只是没有value,相当于dict的key集合,由于dict的key是不重复的,且key是不可变对象因此set也有如下特性:

      • 不重复(多写重复的系统会自动去重)

      • 元素为不可变对象(不存在修改,只能删除再替换)

      集合是字典的简化版,相当于把字典的目录撕了

    2. 创建

      s = set()
      s = {11,22,33,44}  #注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典
      
      a=set('body')
      b=set(['y', 'b', 'o','o'])
      c=set({"k1":'v1','k2':'v2'})
      d={'k1','k2','k2'}
      e={('k1', 'k2','k2')}
      

      列表去重

      li=[1,2,3,3,4]
      set_li=set(li)
      list_li=list(set_li)
      
    3. 基本操作

      1. add()
      set01=set()
      set01.add(1)
      
      1. discard()-移除不存的元素不会报错,常用
      se = {11, 22, 33}
      se.discard(11)
      se.discard(44)  # 移除不存的元素不会报错
      print(se)
      
      1. remove(44)-移除不存的元素会报错(列表也有这个功能)
      se = {11, 22, 33}
      se.remove(11)
      se.remove(44)  # 移除不存的元素会报错
      print(se)
      
      1. pop()-移除末尾元素并把移除的元素赋给新值,不常用
      temp = se.pop()
      print(temp)  # 33
      
      1. intersection()-取交集,赋给新值
      se = {11, 22, 33}
      be = {22, 55}
      
      temp1 = se.intersection(be)             #取交集,赋给新值
      print(temp1)  # 22
      print(se)  # {11, 22, 33}
      
      temp2 = se.intersection_update(be)      #取交集并更新自己
      print(temp2)  # None
      print(se)  # 22
      
      1. 判断
      print(se.isdisjoint(be))        #False,判断是否不存在交集(有交集False,无交集True)
      print(se.issubset(be))          #False,判断se是否是be的子集合
      print(se.issuperset(be))        #True,判断se是否是be的父集合
      
      1. 合并不同项
      temp1 = se.symmetric_difference(be)  # 合并不同项,并赋新值
      print(temp1)    #{33, 11, 55}
      print(se)       #{33, 11, 22}
      
      temp2 = se.symmetric_difference_update(be)  # 合并不同项,并更新自己
      print(temp2)    #None
      print(se)       #{33, 11, 55}
      
      1. 取并集
      se = {11, 22, 33}
      be = {22,44,55}
      
      temp=se.union(be)   #取并集,并赋新值
      print(se)       #{33, 11, 22}
      print(temp)     #{33, 22, 55, 11, 44}
      
      1. 更新
      se.update(be)  # 把se和be合并,得出的值覆盖se
      print(se)
      se.update([66, 77])  # 可增加迭代项
      print(se)
      
  2. 变量类型-Dictionary:可变,没有索引,不能切片,不能排序,字典一般放在列表里。

    1. 类型
      字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中.

      键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

    2. 特性

      和list和tuple一样,dictionary也可以:

      char={item:ord(item) for item in 'python'}
      
    3. 字典访问

      user={
          'name':{'firstName':'zhan','lastName':'liang'},
          'age':20,
          'address':'usa',
          'hobby':['film','sport']
      }
      
      print('user length:',len(user))
      
      print('user first property is :',user['name'])
      
      for key,value in user.items():
          print ('property %s value  %s' % (key,value))
      
      for kk in user.keys():
          print ('property %s' % (kk))
      
      for vv in user.values():
          print ('values %s' % (vv))
      
      

      如果想根据key的先后顺序遍历字典,则可以:

      for kk in sorted(user.keys()):
      print ('property %s' % (kk))
      
    4. 针对不存在的键,如果访问会出现错误。

      nation=user['nation'] #error
      nation=user['nation'] if 'nation' in user else 'china'
      
    5. 添加:如果没有就添加,如果有就更新sex为male

      user['sex']='male'
      
    6. 初始化

      uu=[]
      uu['title']='python'
      uu['score']=90
      
    7. 删除字段

      del uu['score']
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值