美文网首页互联网技术
Python的Tuple&List&Dictionary&Set

Python的Tuple&List&Dictionary&Set

作者: LiuShaodong | 来源:发表于2019-12-20 20:21 被阅读0次

    随着小伙伴们对 Python 的学习不断深入,接触到存数据的 容器 会越来越多。可能有时候,很多 容器 都能满足需求,然而每个 容器 都有其最适合的场景,那么在不同的场景需求面前,如何才能找到最合适的 容器 呢?本篇我们总结一下 Python 中内置的几种 容器 的特点和适合场景,希望可以帮助到小伙伴们进一步加深理解,做到活学活用!

    元组(Tuple)

    元组是一种 有序 数据容器,元组一旦初始化之后就不可以再改变。也就意味着当我们要使用 Tuple 时,就必须要确定下所有的元素,并在初始化的时候,就将所有的元素写入 Tuple。定义元组使用一对圆括号 ( ),如下,我们演示如何定义一个 Tuple

    def tuple_demo():
        tuple1 = (1)  # class 'int'
        print(type(tuple1))
        tuple2 = (1,)  # class 'tuple'
        print(type(tuple2))
        tuple3 = (1, 2, 3)
        print(tuple3)
        tuple4 = ("xiaoqiang", "wangcai", 1, 2)
        print(tuple4)
    
        # 遍历 tuple 方式1:
        for index in range(len(tuple4)):
            # 取tuple4中的每个角标
            print("index=", index, "data in list=", tuple4[index])
        # 遍历 tuple 方式2:
        for element in tuple4:
            print(element)
    
    
    def main():
        tuple_demo()
    
    
    if __name__ == '__main__':
        main()
    
    

    上面的例子,小伙伴们会发现 Tuple的一个坑,“当 Tuple 只有一个元素的时候,需要在该元素之后加 ,,如果不加 ,,Python 不会将其当做 Tuple 类型处理”;另外,Tuple 中元素不必要求类型一致。

    列表(List)

    列表也是一种有序的数据容器,区别于 TupleList 可以随意的添加和删除其中的数据,较为灵活。定义列表使用一对方括号 [ ],如下,我们演示一下 List 的定义和使用:

    def list_demo():
        list1 = [1, 3, 4, 55, 6, 7, 8, 6, 41, 32]
        # 在该列表后追加0
        list1.append(0)  # [1,3,4,55,6,7,8,6,41,32,0]
        # 在角标为1的位置添加元素2
        list1.insert(1, 2)  # [1,2,3,4,55,6,7,8,6,41,32,0]
        # 删除元素1,如果有多个1,则只删除第一次出现的1
        list1.remove(1)  # [2,3,4,55,6,7,8,6,41,32,0]
        # 第一次出现元素2的角标
        print(list1.index(2))  # 0
        # 统计一下列表中1出现的次数
        print(list1.count(1))  # 0
        # 打印角标从0到3的值
        print(list1[:4])  # [2, 3, 4, 55] 也可以使用print(list_a[0:4]) 0:4,是0,1,2,3  不包括4
        # 对list中的元素排序,从小到大
        list1.sort()
        # 对list中的元素排序,从大到小
        list1.sort(reverse=True)
        # 遍历列表:
        for index in range(len(list1)):
            # 取a_list中的每个角标
            print("index=", index, "data in list=", list1[index])
            
        # 多维列表
        mul_list1 = [[1, 2, 3],
                      [2, 3, 4],
                      [3, 4, 5]]
        print(mul_list1[0][0])  # 输出1
    
    
    def main():
        # tuple_demo()
        list_demo()
    
    
    if __name__ == '__main__':
        main()
    
    

    到这里,可能有的小伙伴会问,“貌似 Tuple 能做的事情,List 也都能做啊,那么 Tuple 有什么存在的必要吗?”,这里要解释一下,由于 Tuple 不可变,所以代码会更安全,如果小伙伴们遇到了可以用 Tuple 代替 List 的场景,那么尽量用 Tuple 代替 List,可以用函数 tuple1 = tuple(list1)List 转成 Tuple

    字典(Dictionary)

    字典定义了 之间一对一的关系,字典是无序的,在字典中可以通过 来访问该键对应的 ,定义字典是用一对大括号 { },如下,我们演示一下 Dictionary 的定义和使用:

    def dict_demo():
        dic = {"apple": 1, "banana": 2, "peer": 3}
        # 可以输出指定的 key 的 value   
        print(dic["apple"]) # 1
        # 删除apple这个key
        del dic["apple"]
        print(dic)  # {"banana":2,"peer":3}
    
        # 添加一个key
        dic["orange"] = 20
        print(dic)  # {"orange":20,"banana":2,"peer":3}  没有顺序
        # 字典里面定义字典
        dic_dic = {"apple": [1, 2, 3], "pear": {1: "x1", 2: "x2"}, "orange": 2}
        # 打印出 x1
        print(dic_dic["pear"][1])  
    
    
    def main():
        # tuple_demo()
        # list_demo()
        dict_demo()
        
    
    if __name__ == '__main__':
        main()
    

    集合(Set)

    集合是一个无序不重复元素集,定义一个集合使用一对大括号 { },我们演示一下 Set 的定义和使用:

    def set_demo():
        char_list = ['a', 'b', 'c', 'd', 'd', 'c']
        a_dict = {1: "he"}
        set(char_list)  # 将 list 转成集合,set中不允许有重复的元素,相当于去重。顺序会被打乱
        print(type(a_dict))
        print(type(char_list))
        print(type(set(char_list)))
    
        sentence = "Hello Zhou er zhu and hi Zhou da zhu"
        print(set(sentence))  # 会将整个句子按照字母,空格去重
        # {'o', 'h', 'Z', 'd', 'l', 'r', 'H', 'u', 'n', 'i', 'e', 'z', 'a', ' '}
    
        # 向一个set集合里添加一个元素
        unique_char = set(char_list)
        unique_char.add('x')
        print(unique_char)
        unique_char.clear()  # 清空一个set
        unique_char.remove('x')  # set 中不存在x会报错,可以通过下面的方式来避免这个错误
        unique_char.discard('x')  # set 中不存在x时,不会报错
    
        # 取两个set的交集:
        set1 = {'a', 'b', 'c', 'd'}
        set2 = {'c', 'd', 'e', 'f'}
        print(set1.intersection(set2))
    
        # 在set1中但是不在set2中的元素(set1中有,set2中没有):
        print(set1.difference(set2))
    
    
    def main():
        # tuple_demo()
        # list_demo()
        # dict_demo()
        set_demo()
    
    
    if __name__ == '__main__':
        main()
    

    到这里本篇就要结束了,我们详细介绍了 Python 的四种常见的容器和使用方法,小伙伴们如想做到在恰当的场景下选用恰当的容器,还需要勤加练习,以掌握每种容器的最佳适用场景。想了解更多 Python 知识的小伙伴们可以关注我的简书!

    相关文章

      网友评论

        本文标题:Python的Tuple&List&Dictionary&Set

        本文链接:https://www.haomeiwen.com/subject/dlgfnctx.html