python集合类
2019-11-06 本文已影响0人
张磊_e325
一、列表 list (使用中括号声明)
声明:classmates = ['Michael', 'Bob', 'Tracy']
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
# list元素个数
>>> len(classmates)
3
# 访问第1个元素(注意越界 IndexError: list index out of range)
>>> classmates[0]
'Michael'
# 访问最后1个元素(注意越界)
>>> classmates[-1]
'Tracy'
# 追加
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
# 插入
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
# 删除list末尾的元素
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
# 删除指定位置的元素
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
# 替换
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']
# list里面的元素的数据类型也可以不同,比如:
>>> L = ['Apple', 123, True]
# 二维数组:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
# 排序
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']
二、元组 tuple
声明:t = (1, 2)
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
# tuple声明时必须确定元素
>>> t = (1, 2)
>>> t
(1, 2)
# 空tuple
>>> t = ()
>>> t
()
t=(1)是有歧义的,这里声明的不是tuple,而是数字1。因为小括号可以是运算表达式
要声明一个有数字1的tuple,要写为:(多加个逗号)
t=(1,)
如果tuple的某个元素是引用类型,则该元素只要引用变量不变,内容可以更改
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
三、字典 dict
声明:d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
dict无序,查询快,占内存大。list正相反
需要牢记的第一条就是dict的key必须是不可变对象(TypeError)。key使用哈希算法
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
# 获取不存在的key会报错(KeyError)
# 一种,使用in判断
>>> 'Thomas' in d
False
# 另一种,get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
# 删除
>>> d.pop('Bob')
75
四、set
声明:s = set([1, 2, 3])
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
# 增
>>> s.add(4)
>>> s
{1, 2, 3, 4}
# 删
>>> s.remove(4)
>>> s
{1, 2, 3}
# 两个set取交集,并集
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}