• 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个字符
  • 相关阅读:
    SpringSecurity 3.2入门(8)自定义权限控制数据库设计
    SpringSecurity 3.2入门(7)自定义权限控制介绍
    SpringSecurity 3.2入门(6)简单介绍默认使用的十一个过滤器
    Spring3.2下使用JavaMailSenderImpl类发送邮件
    Java Mail邮件发送的简单实现
    Spring下配置几种常用连接池
    23种设计模式入门之工厂模式
    C# BackgroundWorker的Bug???
    C# BeginInvoke和EndInvoke方法
    c# 高效的线程安全队列ConcurrentQueue
  • 原文地址:https://www.cnblogs.com/lotuslaw/p/14005966.html
Copyright © 2020-2023  润新知