Python学习笔记-四类数据存储结构:list、tuple、dict以及set
来源:互联网 发布:jquery 反序列化json 编辑:程序博客网 时间:2024/06/05 21:13
list
Python使用名为list的有序列表作为序列类型数据的表示。简单的记忆为方括号[]
例如 classmates = ['Michael', 'Bob', 'Tracy']
classmates[0]
有[] 以及, 分隔。
第二行表示的是第一个元素”Michael”
index(索引)是从0
开始。范围从0
到 len(list)-1。
可以用-1
做索引,直接获取最后一个元素。范围为-1
到 -len(list)
超出范围报错:
IndexError: list index out of range
一些方法:
list() -> 返回一个空的list,例如
>>> a = list()>>> a[]
list(iterable) -> 使用iterable的元素初始化一个新的list,例如
>>> b = (1,4,2)>>> a = list(b)>>> a[1, 4, 2]
L.append(object) -> None -- 在末尾添加元素L.clear() -> None -- 从L中移除所有元素L.count(value) -> integer -- 返回当前value在L中的个数L.index(value, [start, [stop]]) -> integer -- 返回第一次出现value的index,如果没找到返回错误“ValueError: *** is not in list”.L.insert(index, object) -- 在指定的index位置插入objectL.pop([index]) -> item -- 移除并且返回index位置的值 (默认最后一个).如果list为空或者index位置不在范围,报错:IndexError: pop index out of rangeL.remove(value) -> None -- 移除第一次出现的value.如果list中不存在这个value则会报错:ValueError: list.remove(x): x not in listL.sort() 排序
注:
- list元素也可以是另一个list。
- list元素可以是不同的类型。
比如:
>>> list1.append(['Bob','Alen'])>>> list1[1, 2, 3, 4, 'Michael', ['Bob', 'Alen']]
另外还有一种列表是
tuple
tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
classmates = ('Michael', 'Bob', 'Tracy')
注意这里是圆括号()
只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义
>>> t = (1,)>>> t(1,)
dict
使用大括号{}
,中间每一个项目用:
做分隔
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}>>> d['Michael']95
通过key放入元素到dict中,如果不存在则创建key值为 Adam的Value,如果存在则覆写Adam的Value:
>>> d['Adam'] = 67>>> d['Adam']67
要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
#!/usr/bin/env python3# -*- coding: utf-8 -*-d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}print('Thomas' in d)print(d.get('Thomas'))print(d.get('Thomas', -1))
注意:返回None的时候Python的交互式命令行不显示结果。
要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
>>> d.pop('Bob')75>>> d{'Michael': 95, 'Tracy': 85}
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 列表内容需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
注意:dict的key必须是不可变对象
set
set和dict类似,也是一组key的集合,但不存储value,相当于没有value的一堆key值集合。
由于key不能重复,所以,在set中,没有重复的key。重复元素在set中自动被过滤。
并且set并不有序。
要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 2, 3])>>> s{1, 2, 3}
通过add(key)方法可以添加元素到set中
通过remove(key)方法可以删除元素
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
>>> s1 & s2>>> s1 | s2
- Python学习笔记-四类数据存储结构:list、tuple、dict以及set
- python学习-------list、tuple、set、dict
- list、tuple、dict、set学习笔记
- python list tuple dict set
- Python--list,tuple,dict,set.
- python 数据分析入门(list set tuple dict)
- Python入门笔记(3)_ List, Tuple, Dict, Set
- Python笔记-list、tuple、dict、set及其比较
- Python中list/tuple/dict/set学习总结
- python的List,Tuple,Dict,Set简略学习。
- python学习系列---list,tuple,dict,set内置方法
- Python学习笔记(9)-列表list、元组tuple、字典dict、集合set
- Python - list, tuple, dict, set的区别
- Python set list dict tuple 区别
- Python List+Tuple+Dict+Set小结
- python之list,tuple,set,dict
- python之list、tuple、dict、set对比
- Python之List,Tuple,Set,Dict
- CentOS 7上部署Google BBR
- volatile关键字的作用
- PAT乙级 1006. 换个格式输出整数 (15)
- jobbole总结一
- 利息计算
- Python学习笔记-四类数据存储结构:list、tuple、dict以及set
- 【JAX-WS】wsimport生成WS客户端代码,代码中添加验证
- c#if,switch语句
- HDU 6041 I Curse Myself(仙人掌+tanjan)
- C
- html笔记——jQuery Mobile遇到了无法修改的css怎么办
- django新建app以及model的创建
- 牛顿迭代法求平方根
- jQ获取目标div中鼠标的位置信息的俩种方法