zoukankan      html  css  js  c++  java
  • Python之数据结构:列表、元组、字典、set

    列表

    列表里可以存储任意的数据类型、可修改的结构,用[ ]括起来表示或用函数list()构建。

    eg: y = [1,1.5,'hello',True]

    列表还可以嵌套列表

    eg: y = [1,1.5,'hello',True,["wo","heng","shuai"]]

    访问元素:索引从0开始

    1 y = [1,1.5,'hello',True,["wo","heng","shuai"]]
    2 y[1]
    1.5
    1 y[4][1]
    'heng'
    1 y[1:3]#前闭后开
    [1.5, 'hello']

    y[::2]#第二个冒号后表示步长
    [1, 'hello', ['wo', 'heng', 'shuai']]


    列表的修改、添加和删除
    a=[1,1,3,45,6]
    b=[5,6,7]
    a[3]=4

    添加

    1 a.append(8)#在表的末尾添加
    2 a
    [1, 1, 3, 4, 6, 8, 8]
    1 a.extend(b)#添加列表时可拆分添加
    2 a
    [1, 1, 3, 4, 6, 8, 8, 5, 6, 7]
    1 a.insert(7,"y")#指定添加元素的位置
    2 a

    [1, 1, 3, 4, 6, 8, 8, 'y', 5, 6, 7]

    删除
    1 a.remove("y")#删除第一个指定值
    2 a
    
    
    [1, 1, 3, 4, 6, 8, 8, 5, 6, 7]
    1 del a[1]#基于位置删除
    2 a
    [1, 3, 4, 6, 8, 8, 5, 6, 7]
    1 a.pop(1)#基于位置弹出并显示删除值
    2 a
    [1, 4, 6, 8, 8, 5, 6, 7]

    排序:
    x.sort()修改原数据,sorted(x)不修改原结构
    1 a.sort()
    2 a
    
    
    1, 5, 6, 6, 7, 8, 8]
    1 c=(2,3,1,4,6)
    2 sorted(c)

    [1, 2, 3, 4, 6]
    c
    
    (2, 3, 1, 4, 6)

    反转
    1 a.reverse()
    2 a
    [8, 8, 7, 6, 6, 5, 1]

    a[::-1]
    [1, 5, 6, 6, 7, 8, 8]





    元组
    元组的用法和列表几乎一致,最大的区别是元组不可更改。
    元组用tuple或者()表示
     

     字典

    字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。
    字典用{ }或者用dict()函数创建
    scores = {'语文': 109, '数学': 110, '英语': 123}
    dict1=dict(身高=179,体重=120,年龄=22)#字符串不需用引号
     
    字典的基本用法:key 是字典的关键数据,因此程序对字典的操作都是基于key的
     
    •访问字典中的值
    1 dict1["身高"]

    179

    但常用get()方法获取,因为用此方法当访问的key不存在时不会报错

    1 dict1.get("身高")

    179

     

    键值对的添加删除

    添加

    1 dict1["学历"]="本科"
    2 dict1

    {'身高': 179, '体重': 120, '年龄': 22, '学历': '本科'}


    删除
    1 del dict1["学历"]
    2 dict1
    {'身高': 179, '体重': 120, '年龄': 22}
    1 dict1.pop("年龄")
    2 dict1
    {'身高': 179, '体重': 120}
    修改
    1 dict1["身高"]=180
    2 dict1
    {'身高': 180, '体重': 120}


    字典常用的方法
    1 dir(dict)['__class__','__contains__','__delattr__','__delitem__','__dir__','__doc__','__eq__','__format__','__ge__','__getattribute__','__getitem__','__gt__','__hash__','__init__','__init_subclass__','__iter__','__le__','__len__','__lt__','__ne__','__new__', '__reduce__','__reduce_ex__','__repr__','__setattr__','__setitem__','__sizeof__','__str__','__subclasshook__','clear','copy','fromkeys','get','items','keys','pop','popitem','setdefault','update','values']
     

    clear() 用于清空字典中所有的 key-value 对

    get() 方法其实就是根据 key 来获取 value

    items()、keys()、values()

    items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。

     

    1 for k,v in dict1.items():
    2     print(k)
    3     print(v)

     

    身高
    185
    体重
    120
    1 for k in dict1.keys():
    2     print(k)
    身高
    体重
    1 for v in dict1.values():
    2     print(v)
    185
    120

     

    update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖

     

    dict1.update(身高=185)
    dict1
    {'身高': 185, '体重': 120}
     


    set

    set的元素是唯一且无序的(可认为是KEY的集合),所以可以用来去重,如list(set(list)),因为set 内容元素是可哈希的,所以对set内容只能增删,不能直接修改。

    1 a=set([2,1,2,3,5,4,3,4,5])
    2 a
    3 b=set([1,2,6,7,8])
    4 b
    {1, 2, 3, 4, 5}
    {1, 2, 6, 7, 8}

    但因为set的特性,set可以求差集、并集、反交集、子集和超集等
    1 a|b#
    {1, 2, 3, 4, 5, 6, 7, 8}
    1 a&b#
    {1, 2}

     

  • 相关阅读:
    css3小叮当(转载)
    三大Flex布局用法(转载)
    移动前端:移动端页面坑与排坑技巧
    最好的前端开发资源推荐(转载)
    高效CSS开发核心要点摘录
    css常用代码大全以及css兼容(转载)
    如何处理CSS3属性前缀(转载)总结
    前端制作入门知识(转载)
    移动前端页面制作技巧(一)转载
    sass揭秘之@mixin,%,@function(转载)
  • 原文地址:https://www.cnblogs.com/ye20190812/p/13331004.html
Copyright © 2011-2022 走看看