list: Python中内置的有序数据结构,即数组。由于Python是动态语言,因此数组元素的类型没有限定。

  • classmates = [“Michael”, “David”,”Bob”,”Tracy”]
  • 空列表:empty_list = []
  • 使用负数来表示倒叙,即索引-1来表示最后一项:classmates[-1]打印出Tracy,classmates[-4]打印出Michael,注意倒叙不是从0开始,因为-0和0没区别。
  • list.insert(index, data) 在指定的位置插入指定内容。
  • list.append(new_list) 在list结尾将整个new_list作为一个元素插入。
  • list.extend(new_list)在list结尾将new_list的元素逐一插入。
  • list.pop()返回并删除list的最后一个元素。
推导公式的多层嵌套:
# 例:打印1~999中个位数和百位数相同的数字,每个for/if语句都是包含的关系。
 print(x*100 + y*10 + z for x in range(10) for y in range(10) for z in range(10) if x > 0 and x == z)
for语句中获得list下标:enumerate(list)会将list转换成(index,item)的tuple。
 >>> L=['abc','bcd','cde']
>>> for n in enumerate(L):
... print(n)
...
(0, 'abc')
(1, 'bcd')
(2, 'cde')
>>> for index,item in enumerate(L):
... print(index,',',item)
...
0 , abc
1 , bcd
2 , cde

click me

 
tuple:不可变的列表
  • list使用的是中括号[]声明,tuple使用小括号()声明。
  • 由于tuple不可变,自然也就无法使用insert()/append()/extend()/pop()等方法。
  • ()可以创建不同元素数量的tuple,但注意当tuple的元素只有一个的时候,要使用逗号:a_tuple=(1,)
    • 因为没有逗号的话会被当做是四则运算中的括号,为免混淆会多了一个逗号。
  • tuple的不可变指的是元素地址的不可变,而元素如果是引用类型,则所引用的地址是可变的。例如tuple的元素中有一个list,则该list的内容可变。
 
dict (字典/dictionary):

  • key-value的格式,其实就是JSON。
  •  dict1 = {
    'Adam' : 95,
    'Lisa' : 85,
    'Bart' : 59,
    'Paul' : 75
    }

    click me

  • 可通过BIF: len(dict) 查看dict的长度。
dict的三个特点:
  • 查找速度:比list快,相对地占用较大内存。
  • 元素无序。
  • key必须是不可变且不可重复,如字符串、整数、浮点数
操作dict
  • 添加一个item: dict[‘key’]=value
  • 获取dict的key集合:dict.keys()
  • 获取dict的values集合:dict.values()
  • 获取个key-value pair的tuple:dict.items()

dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。

不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。

 
set
  • 无序、不重复(对大小写敏感)
  • 可通过BIF:set(list)来创建
  • 通过in来判断item是否在set中:’Paul’ in s >> True

set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。

set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。

参考资料:

Python:数据结构(list, tuple, Dict & Set)的更多相关文章

  1. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  2. Python中list,tuple,dict,set的区别和用法(转)

    原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...

  3. Python容器--list, tuple, dict, set

    ## Python 中有四种用于存放数据的序列--list, tuple, dict, set ## list 列表 - 可以存放任意类型数据的有序序列 - 列表可以由零个或多个元素组成,元素之间用逗 ...

  4. python中list/tuple/dict/set的区别

    序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表list和元组t ...

  5. python list 和 tuple, dict 用于迭代代价

    #!/usr/bin/env python #-*- coding:utf-8 -*- import time start = time.time() for i in range(1000000): ...

  6. python 之 list,tuple,dict,set

    基本类型,  其中set好像提到的很少 list : []  根据字面, 是一个列表,  所以有序, 可以通过序号方位 tuple: ()  是不变的list, 通过序号访问 dict: {},  字 ...

  7. python中list,tuple,dict,set等深浅拷贝的问题记录

    对于字典.元祖.列表 而言,进行赋值.浅拷贝和深拷贝时,其内存地址的变化是不同的. 1.赋值 赋值,只是创建一个变量,该变量指向原来内存地址,如: 1 2 3 n1 = {"k1" ...

  8. python 数据结构-元组tuple

    tuple0=() #空 tuple1="wo", #元组中包括单个元素用, tuple2="monkey","cat","chi ...

  9. list,tuple,dict,set的增删改查

    数据结构 list tuple dict set 增 append insert    d['key']=value  add 删 pop pop(0)    d.pop('name') pop re ...

随机推荐

  1. apache解压版安装服务

    解压版也就是绿色版 到apache/bin目录 然后运行下面命令 httpd.exe -k install -n "Apache24" 如果要卸载服务的话,就是下面这个命令 htt ...

  2. 《用 Python 学微积分》笔记 3

    <用 Python 学微积分>原文见参考资料 1. 16.优化 用一个给定边长 4 的正方形来折一个没有盖的纸盒,设纸盒的底部边长为 l,则纸盒的高为 (4-l)/2,那么纸盒的体积为: ...

  3. 利用python 模块读取csv文件信息

    还有一个比较简单的方法 # -*- coding=utf-8 -*- import pandas as pddf = pd.read_csv("20170320094630.csv" ...

  4. Request库使用response.text返回乱码问题

    我们日常使用Request库获取response.text,这种调用方式返回的text通常会有乱码显示: import requests res = requests.get("https: ...

  5. TileMode(平铺模式) 枚举的成员:

    TileMode(平铺模式) 枚举的成员:   成员名称 说明   FlipX 与 Tile 相同,只不过图块的交替列被水平翻转. 基本图块本身不翻转.   FlipXY FlipX 和 FlipY ...

  6. 搭建多master的saltstack环境

    0.16.0版本的发布,带来了minion可以连接多Master的特性. 这种方式称为多master( multi-master )配置, 使环境中的SaltStack冗余.在这种配置下,Salt M ...

  7. Nginx禁止域名恶意解析

    今天打开网站发现访客人数突增啊,不对啊,小站哪来这么多的访问量呢?打开百度统计,看到有其他的域名解析到我的IP,心中很不爽啊.遂搜索之,才有了此篇文章. 打开Nginx配置文件/etc/nginx/s ...

  8. Ansible 小手册系列 五(inventory 主机清单)

    Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts 主机清单示例 mail.example. ...

  9. 最大匹配算法 (Maximum Matching)

    之所以研究这个算法,是因为最近在研究NLP中文的分词,所谓分词就是将一个完整的句子,例如“计算语言学课程有意思”,分解成一些词组单元“计算语言学,课程,有,意思”. “最大匹配法” 在中文分词中有所应 ...

  10. 决定整理一下canvas的基础学习

    好久没有用过canvas,都要忘完了.还是决定复习一下以前的笔记,以及整理一下笔记,以后好查阅