python基础:list和tuple,dict和set
2017-06-07 本文已影响0人
plsour
python基础
list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们
使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串
list
list是一种有序的集合,可以随时添加和删除其中的元素
s=['L','O']
- 用 len() 函数可以获得list元素的个数
- 用索引来访问list中每一个位置的元素,记得索引是从0开始的
- 如果要取最后一个元素,除了计算索引位置外,还可以用 -1 做索引,直接获取最后一个元素
- ist是一个可变的有序表,所以,可以往list中追加元素到末尾:
>>>s.append('A')
- 把元素插入到指定的位置,比如索引号为1的位置
>>>s.instert(1,'B')
- 删除list元素,用pop()方法:
>>>s.pop()
# 删除list末尾的元素
>>>s.pop(1)
# 删除指定位置的元素
- list元素也可以是另一个list
>>>p=['N',s]
p[1][1]="B"
# 二维数组
tuple(元组)
tuple和list非常类似,但是tuple一旦初始化就不能修改
代码更安全。如果可能,能用tuple代替list就尽量用tuple
>>>s=('a','b','c')
- 要定义一个只有1个元素的tuple
q=(1,)
只有1个元素的tuple定义时必须加一个逗号
q=(1)
按小括号进行计算 - “可变的”tuple"
>>>t=('a','b','c',['A','B'])
>>t[3][0]='N'
>>>t
('a','b','c',['N','B'])
tuple所谓的“不变”是说,tuple的每个元素,指向永远不变
- 函数返回多个值时,实质上返回的是一个tuple,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple
dict
- dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度
d = {'a': 10, 'B': 20}
- 通过key放入:
>>> d['C'] = 30
- 通过in判断key是否存在:
>>> 'd' in d
False
>>> 'c' in d
True
- dict的key必须是不可变对象
set
- set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key
s = set([1, 2, 3])
- 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
通过remove(key)方法可以删除元素
>>> s=set([1,2,2,3,3,4])
>>> s
{1, 2, 3, 4}
>>> s.add(6)
>>> s
{1, 2, 3, 4, 6}
>>> n=set(['a','a','b'])
>>> n
{'b', 'a'}
>>> n.add('c')
>>> n
{'c', 'b', 'a'}
>>> s.add('c')
>>> s
{1, 2, 3, 4, 6, 'c'}
>>> s.remove('c')
>>> s
{1, 2, 3, 4, 6}
- set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
>>> s & n
{2}
>>> s | n
{1, 2, 3, 4, 6, 'a', 'b', 'c'}
- set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等
list放入set会报错