python基础----list列表、tuple、dict字典、set
list
- python内置的一种数据结构
- 有序
- 可更改(添加、删除)
声明
- ['dota', 'dota2', 'lol']
获取列表长度
- 3
获取元素
- 'dota'
- 'dota2'
- 'lol'
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- IndexError: list index out of range
ruby
如果下标越界会报错
##更改
- ['dota3', 'dota2', 'lol']
增加元素
###末尾追加 >>> game.append("wow") >>> game[3] 'wow' >>> game ['dota', 'dota2', 'lol', 'wow']
###指定位置插入 >>> game.insert(2, "war3") >>> game ['dota', 'dota2', 'war3', 'lol', 'wow']
##删除元素
###删除末尾的元素 >>> game.pop() 'wow' >>> game ['dota', 'dota2', 'war3', 'lol']
###删除指定位置元素 >>> game.pop(1) 'dota2' >>> game ['dota', 'war3', 'lol']
#tuple
- python内置的一种数据结构
- 有序
- 不可更改
- 在赋值的时候决定所有元素
##声明 >>> game = ('dota', 'war3', 'lol') >>> game ('dota', 'war3', 'lol')
获取长度
- 3
获取元素
- 'dota'
- 'dota2'
- 'lol'
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- IndexError: list index out of range
ruby
如果下标越界会报错
dict
- python内置的一种数据结构
- 无序
- 可更改
类似于C++语言的map,存键值对,有很快的查找速度。比如根据身份证号查找某个人的名字,根据学号查找学生成绩单。用list遍历也可以得到结果,但是太慢了,list就好像你在一个小区找人,你一家一家敲门。dict就好像你直接按照地址X栋X单元X层直接找。 dict是典型的用空间换时间的例子。会占用大量内存,但是查找、插入速度很快,不会随着元素数量增加而增加。 list则是时间换空间的例子,不会占用大量内存,但是随着元素数量增多,查找时间会变很长。
声明
查找
- 'alan'
- 'bob'
- 'lucy'
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- KeyError: 5
ruby
为了避免出现报错的情况我们一般事先判断一下这个key是否在字典中
- >>> 5 in name
- False
也可以用get方法取,如果key不存在,会返回None或者自己定义的默认值
- 'default'
更改
- {1: "alan", 2: "bob", 3: "lucy", 4: "mac"}
删除
- 'alan'
- {2: 'bob', 3: 'lucy'}
ruby
元素个数
- 2
获取所有key
- >>> name.keys()
- [2, 3]
获取所有value
- ['bob', 'lucy']
获取所有键值对
- [(2, 'bob'), (3, 'lucy')]
#set
- python内置数据结构
- 无序
- 可更改
set可以视为没有value的dict,只存key,一般用做去重或者集合求交、求并等。
##声明
求并、交
- >>> girls_1 & girls_2
- set(['lily'])
- >>> girls_1 | girls_2
- set(['lily', 'lucy', 'anna'])
gams
增加元素
- set(['marry', 'lily', 'lucy'])
删除元素
- set(['marry', 'lily'])

浙公网安备 33010602011771号