zoukankan      html  css  js  c++  java
  • python中的list,tuple,dict,set简介---陈雨童

    变量对象 变量把对象和自己连接起来(指针连接对象空间),引用建立了变量和对象之间的映射关系,这就是引用。引用完成,就实现了赋值。变量通过对象的内存地址指向对象,类似于软链接

    将变量a赋值给变量b,其实就是将b指向变量a指向的对象的内存地址

    以下4种对象类型内的元素都是变量

    列表list是一种有序的集合,可以随时添加和删除其中的元素。用方括号[]来表示列表,并用逗号分隔元素 如a=[1,2,3]

    Len()函数可获得list的元素个数

    列表是有序集合,访问列表中的元素时,指出列表名称,并将元素索引放在[ ]内,索引从0开始。

    Python可以通过负数的索引返回列表内倒数的元素,如a[-1] a[-2]分别为倒数第一个第二个元素,以此类推

    可以通过索引加冒号的方式进行切片 如 a[1:4]将索引1和索引3以及之间的元素输出为一个新的列表   可用切片以复制列表

    注意索引不要越界,否则就会报错

    可用 + 号将两个列表首尾相连如 []

    修改添加删除元素:

    修改列表中的元素:a[1]=’321’ 直接通过列表索引赋值即可

    列表末尾添加元素: a.append()

    插入元素:a.insert(i,(1,2,3))  i为元素插入后在列表内的索引,原索引位元素以及往后元素的索引加1

    删除列表末尾元素:a.pop()

    删除指定位置的元素:a.pop(i) ,i为索引位置

    或者用del a[i]也可以删除指定位置元素 (del为删除变量的函数,并不删除变量指向的数据)

    当不知道位置时根据值进行删除:a.remove(),括号内填入需删除的元素的值,输入不存在的元素会报错

    通过sort()方法进行排序 默认为升序,sort(reverse=True)进行降序

    列表生成式 如[x*x for x in range(1,10)]

    在for循环后可加if语句进行判断筛选如[x*x for x in range(1,10) if x % 2 !=0]

    另一种有序的集合叫元组tuple。tuple和list非常类似,用小括号表示(不使用小括号python也能识别为元组,建议使用小括号的方式)但是tuple一旦初始化就不能修改

    tuple不可变,所以代码相对安全,且相比列表占用内存更少。如果可能,能用tuple代替list就尽量用tuple

    关于元组其他一些细节:

    定义一个只有1个元素的tuple时,必须加一个逗号,否则只代表该元素本身

    Python在显示只有1个元素的tuple时,也会加一个逗号,以免你误解成数学计算意义上的括号如(1,)

    字典dict,dict全称dictionary,在其他语言中也称为map,使用花括号{ }内的键-值(key-value)存储,查找速度较快。一个key只能对应一个value。用dict()或{ }初始化

    其中key只能是不可变对象且同一dict中任意两个key不能相同,而value可以是任意对象

    如score={‘ming’:60,’gang’:70,’hong’:80}

    字典可为空

    通过字典的key访问字典中的值 score[‘ming’]

    字典中的value除了初始化时指定,也可通过key值进行修改赋值r如score[‘ming’]=65

    可随时在字典内添加键值对 如 score[‘ding’]=75 (dict是无序的,添加顺序与排列顺序无关,不同版本python体现不同)

    可以用del或pop()对键值对进行删除(由于dict为无序,pop()中必须添加key,否则会报错)

    通过score.items(), score.keys() ,score.values()分别获取dict中所有的键值对、键、值

    集合set是一个无序的不重复元素序列,相当于一个只有key没有value的dict。

    通过花括号{}或者set()函数进行初始化一个set

    通过add()方法添加元素到set

    或update()方法添加元素,参数可以是列表,元组,字典等

    通过remove()方法删除元素

    Set同样具有数学意义上集合的特质,可以进行数学意义上的交集并集等操作,将两个set通过&和|符进行交集或并集运算

  • 相关阅读:
    android的快速开发框架集合
    总结防止APK被工具反编译、二次打包等
    iOS开发笔记--应用跳转
    iOS开发笔记--iOS沙盒机制
    iOS开发笔记--43个在GitHub上的优秀Swift开源项目推荐
    iOS开发笔记--iOS App图标和启动画面尺寸
    iOS开发笔记--iOS国际化与NSLocalizedString的使用
    iOS开发笔记--ios 画图总结
    iOS开发笔记--iOS中的触摸事件和手势处理
    iOS开发笔记--iOS中的多线程
  • 原文地址:https://www.cnblogs.com/niaocaizhou/p/12082274.html
Copyright © 2011-2022 走看看