桐花万里python路-基础篇-06-列表元组字典集合

本文详细介绍了Python中的几种基本数据结构,包括列表、元组、字典和集合的特点及使用方法。探讨了每种数据结构的基本操作,如创建、查询、增加、修改、删除等,并通过实例演示了这些操作的具体实现。
  • 列表
    • list 是一种有序的集合,可以随时添加和删除其中的元素
    • 常用操作
      • 创建
      • 查询
      • 切片
      • 增加
      • 修改
      • 删除
      • 循环
      • 排序
        # 创建列表
        classmates = ['James', 'Michael', 'Bob', 'Tracy', 'Jason']
        # 或者
        my_classmates = list(['JackJons', 'Scofiled', 'Selected', 'H&M'])
        print(classmates)  # ['James', 'Michael', 'Bob', 'Tracy', 'Jason']
        # 索引通过下标访问列表中的元素,下标从0开始计数
        print(classmates[0])  # James
        print(classmates[-1])  # Jason
        print(classmates.index('Michael'))  # 1
        # 切片
        print(classmates[0:2])  # ['James', 'Michael']
        print(classmates[-3:4])  # ['Bob', 'Tracy']
        # 增加
        classmates.append('Andy')
        classmates.insert(2, 'Jeff')
        classmates.insert(-1, 'Linux')  # ['James', 'Michael', 'Jeff', 'Bob', 'Tracy', 'Jason', 'Linux', 'Andy']
        print(classmates)
        # 修改
        classmates[1] = 'Mike'
        # 删除
        del classmates[4]
        # print(classmates.remove("Eric")) #ValueError x not in list
        classmates.append("Eric")
        classmates.remove("Eric")
        classmates.pop()
        # 扩展
        classmates.extend(['Peter', 'Jess', 'Tom', 'Bob'])
        # 统计
        print(classmates.count("Bob"))  # 2
        # 排序
        classmates.sort()
        print(classmates)  # ['Bob', 'Bob', 'James', 'Jason', 'Jeff', 'Jess', 'Linux', 'Mike', 'Peter', 'Tom']
        # 拷贝 (深浅拷贝)
        classmates_new = classmates.copy()
        print(classmates_new)  # ['Bob', 'Bob', 'James', 'Jason', 'Jeff', 'Jess', 'Linux', 'Mike', 'Peter', 'Tom']
      •  

  • 元组
    • tuple 只读列表,它只有2个方法,一个是count,一个是index,
      • 索引
      • 切片
      • 长度
      • 循环
      • 包含
        ages = (11, 22, 33, 44, 55, 'python', True)
        #
        ages = tuple((11, 22, 33, 44, 55, 'python', True))
        print(type(ages))  # <class 'tuple'>
  • 字典
    • dict 字典一种key - value 的数据类型。字典的特性:无序的,key必须是唯一的
      • 创建
      • 增加
      • 修改
      • 删除
      • 查找
      • 循环
      • 长度
        # 字典
        score = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
        print(score)
        # 长度
        print(len(score))
        # 增加
        score['Peter'] = 99
        score['Gui'] = 'Python'
        # 修改
        score['Bob'] = 91
        # 删除
        del score['Tracy']
        print(score.pop('Linux', '1989'))  # 1989 pop(key,default)删除并返回
        # 是否存在
        print('Bob' in score)
        # 获取
        print(score['Gui'])
        print(score.get('Bob'))  # 91
        print(score.get('Bobs', None))  # None
        print(score.keys())  # dict_keys(['Michael', 'Bob', 'Peter', 'Gui'])
        print(score.values())  # dict_values([95, 91, 99, 'Python'])
        print(score.items())  # dict_items([('Michael', 95), ('Bob', 91), ('Peter', 99), ('Gui', 'Python')])
        # 遍历
        for stu in score:
            print(stu, score[stu])
        
        for i, v in score.items():
            print(i, v)
        
        # 嵌套
        score['class3'] = score
        print(score.items())
  • 集合
    • 无序的,不重复的数据组合。交集,并集,差集,对称差集
    • # 集合
      s = set([3, 5, 9, 10])  # 创建一个数值集合
      
      t = set("Hello")  # 创建一个唯一字符的集合
      
      a = t | s  # t 和 s的并集
      
      b = t & s  # t 和 s的交集
      
      c = t - s  # 求差集(项在t中,但不在s中)
      
      d = t ^ s  # 对称差集(项在t或s中,但不会同时出现在二者中)
      
      # 基本操作:
      
      t.add('x')  # 添加一项
      
      s.update([10, 37, 42])  # 在s中添加多项
      
      # 使用remove()
      # 可以删除一项:
      
      t.remove('H')
      
      print(len(s))  # 6
      # set的长度
      x = 10
      print(x in s)  # True
      # 测试x是否是s的成员
      
      print(x not in s)  # False
      # 测试x是否不是s的成员
      
      print(s.issubset(t))  # False
      print(s <= t)  # False
      # 测试是否s中的每一个元素都在t中
      
      print(s.issuperset(t))  # False
      print(s >= t)  # False
      # 测试是否t中的每一个元素都在s中
      
      print(s.union(t))  # False
      print(s | t)  # False
      # 返回一个新的set,包含s和t中的每一个元素
      print('*' * 50)
      print(s.intersection(t))  # set()
      print(s & t)  # set()
      # 返回一个新的set,包含s和t中的公共元素
      
      print(s.difference(t))  # {3, 5, 37, 9, 10, 42}
      print(s - t)  # {3, 5, 37, 9, 10, 42}
      # 返回一个新的set包含s中有但是t中没有的元素
      
      print(s.symmetric_difference(t))  # {3, 37, 5, 9, 10, 42, 'l', 'x', 'o', 'e'}
      print(s ^ t)  # {3, 37, 5, 9, 10, 42, 'l', 'x', 'o', 'e'}
      # 返回一个新的set包含s和t中不重复的元素
      
      sc = s.copy()
      # 返回set “s”的一个浅复制
      print(sc)  # {3, 37, 5, 9, 10, 42}

      #
      集合的元素必须是不可变类型
      """
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      TypeError: unhashable type: 'set'
      """

      hash(s)
      s.add([12,34])
      s.add({'a':'b'})

       


转载于:https://www.cnblogs.com/zhujingxiu/p/8185526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值