1. 列表list
1.1 切片
# 定义一个list。
list = [1, 2, 3, 4, 5]
从左往右读取字符(默认步长为 1 )。如:
list[-2:-1] # 返回一个list数据类型,[6]
list[2] # 返回一个int数据类型, 3
从右往左读取字符串(默认步长为 1 )。如:
list[-1:-2] # 返回一个空list, []
list[-1:-2:-1] # 步长为 -1 ,[5]
1.2 内置list方法
如:a = "123"
list(a)
# 返回的是一个列表,参数可迭代对象。里面输出的内容保持传入的可迭代对象的元素和顺序。如果参数为空,则返回一个空列表。
1.3 xrange 和 range 的具体区别
1.3.1 xrange 的用法(仅在python2中使用):
xrange(开始, 结束, 步长)
xrange 它生成一个xrange对象。
1.3.2 比较
range:直接生成一个列表对象。 #(在python3中,range是生成一个range对象,支持切片)
xrange:生成一个xrange对象。操作数据大,每一次只返回单个元素,节省内存。
1.3.3 列表推导式的应用
1) 取出1-10的所有值的平方。
[x*x for x in range(10)] # 结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2) 生成字符串。
[‘num %s‘ % i for i in range(10)]
# 结果:[‘num 0‘, ‘num 1‘, ‘num 2‘, ‘num 3‘, ‘num 4‘, ‘num 5‘, ‘num 6‘, ‘num 7‘, ‘num 8‘, ‘num 9‘]
3)生成元组。
[(x,y) for x in range(2) for y in range(2)]
# 双重迭代列表,在以元组的形式(x,y)组合,生成一个列表,结果是:[(0, 0), (0, 1), (1, 0), (1, 1)]
4)生成字典。
dict([(x,y) for x in range(4) for y in range(3)])
# 第一个列表的迭代作为字典的键,第二个列表的迭代作为字典的值。结果为:
{0: 2, 1: 2, 2: 2, 3: 2}
3. 集合set
集合没有顺序,故不能用切片和索引操作。
3.1 创建集合。
set() :可变的
frozenset():不可变的(不能执行添加,删除等操作)
3.2 添加操作。如:
a = set("asd") # 结果:{‘a‘, ‘d‘, ‘s‘}
add :
a.add("panisme") #按原始字符串传入。结果:{‘panisme‘, ‘s‘, ‘d‘, ‘a‘}
update :
a.update("panisme") #将字符串分割传入。
#结果:{‘m‘, ‘e‘, ‘p‘, ‘panisme‘, ‘s‘, ‘n‘, ‘boy‘, ‘i‘, ‘d‘, ‘a‘}
3.3 删除
remove :
a.remove("panisme") # 结果:{‘m‘, ‘e‘, ‘p‘, ‘s‘, ‘n‘, ‘boy‘, ‘i‘, ‘d‘, ‘a‘}
3.4 判断成员关系
in :"a" in a # 判断字符"a" 是否在集合 a 里面,返回bool值。
not in
3.5 交集, 并集, 差集
交集 :&
并集 :|
差集 :-
3.6 set去重
去除列表内容元素重复,如:
b = [1,23,4,5,2,2,1,2]
set(b) # 用集合去重,返回结果:{1, 2, 4, 5, 23}
list(set(b)) # 达到列表去重目的,得到列表:[1, 2, 4, 5, 23]
...