5-字典&集合&字符串基础

字典

  • 键值对{key: value}
  • 键key的特性
    • 1.无序
    • 2.唯一性,如果重复,后面的value会覆盖前面的value
    • 3.只能使用不可变类型的数据,主要使用字符串,其他的不可变类型:数字,布尔类型,元组,None也可以
  • 查找
    • 通过key来查找
      • person = {'name': '鹿晗', 'age': 30, 'age': 3, (1,): 'hehe'}
      • print(person['name']) # 鹿晗,通过key找value
      • print(person.get('age'))
      • print(person['a']) # 报错
      • print(person.get('a')) # 不报错,获取了None
      • print(person.get('sex', '女')) # 不报错,获取了女
  • 创建方式
    • 直接通过{key: value}创建
    • # 键=值
    • dog = dict(name='旺财', like='舔')
    • # 通过zip
    • dog = dict(zip(['name', 'like'], ['旺财', '骨头']))
    • # 将字符串看成是列表,与上一个原理相同
      • dog = dict(zip('abc', 'xyz'))
    • # 直接将列表转化为字典
      • dog = dict([('name', '旺财'), ('like', '游泳')])
      • print(dog) # {'name': '旺财', 'like': '游泳'}
  • 增加/修改
    • # 以键为索引
      • cat = {'name': 'tom', 'sex': 'male'}
      • cat['age'] = 3
      • cat['sex'] = 'female'
      • print(cat)
  • # 删除
    • # pop
      • cat = {'name': 'tom', 'sex': 'male', 'age': 3}
      • cat.pop('sex')
      • print(cat) # {'name': 'tom', 'age': 3}
    • # popitem,默认删除最后对键值,但由于key是无序的,所以认为是随机删除
    • # clear清空
    • # del 通过键来删除
  • 基本操作
    • 拼接
      • d1.update({key: value})
    • 判断
      • in not-in
    • 长度
      • len
    • 没有下标,所以不能切片
    • 遍历
      • 获取所有key
        • k = d.keys()
        • print(k) # dict_keys(['a', 'b', 'c'])
        • print(list(k)) # ['a', 'b', 'c']
        • for key in d.keys():
          • print(key)
        • for value in d.values():
          • print(value)
        • for key, value in d.items():
          • print(key, value)

字符串是不可变类型,所以所有针对字符串的函数都必须有返回值,原字符串不变

字典与列表的区别

  • 列表
    • 1.定义方式:[1, 2, 3],一般存放的时相同类型的数据
    • 2.内存消耗较小
    • 3.数据量增大时,查找所需时间更长(速度更慢)
  • 字典
    • 1.定义方式:{key: value},一般存放相同对象的不同属性
    • 2.内存消耗较大一点
    • 3.随着数据量增大,对查找速度影响不大,查询速度很快

集合

  • 集合的特点
    • 1.无序
    • 2.唯一
  • 集合一般用来去重
  • 创建集合
    • set1 = {1, 2, 3, 4, 3, 3}
    • set1 = set() # 空集合
    • 字典转集合,集合的元素是字典的key
      • d1 = {'a': 1, 'b': 2}
      • s1 = set(d1)
      • print(s1)
  • 集合的长度
    • len
  • 遍历
    • for n in s1:
      • print(n)
  • 集合的操作
    • s1 = {1, 2, 3}
    • s1.add(4) # 添加1个元素
    • 添加多个元素
      • print(s1) # {1, 2, 3, 4}
      • s1.update([5, 6, 7])
      • print(s1) # {1, 2, 3, 4, 5, 6, 7}
    • 删除
      • remove
      • discard # 如果删不掉,不会报错
      • clear # 清空
      • 先删除再添加
    • 集合之间的关系
      • print(s1 & s2) # 交集
      • print(s1 | s2) # 并集
      • print(s1 ^ s2) # 补集/对称差集
      • print(s1 - s2) # 差集
      • print(s1 > s2) # s1 是否包含s2
      • print(s1 < s2) # s2 是否包含s1

字符串基础

  • 拼接
    • +
  • 重复
    • *
  • 字符串长度
    • len
  • 判断
    • in not-in
  • # 下标,与列表的用法一致
    • print(name[0])
  • # 切片
    • s = 'i am god'
    • print(s[::-1]) # dog ma i
  • # 遍历
    • for c in s:
    • for i in range(len(s)):
  • 转义
    • # 换行
    • # 制表符,Tab键
    • # 让右边的字符没有语义
      • print(r'hello jack') # hello jack,一次性使右边的字符都没有语义
  • replace
    • replace():替换
      • s = 'hello world'
      • s2 = s.replace('world', 'python') # 默认替换所有,加个count,表示替换count个字符
原文地址:https://www.cnblogs.com/lotuslaw/p/14005966.html