列表
- 列表:他其中的每一个元素都是可变的,有序的,是可以进行索引查看的也就表明可以对列表中的每个元素进行增删查改的操作。那么范围是列表中的元素是python中的任何对象。
- 列表也是Python中常用的数据类型,其数据项是不需要具有相同类型的。
列表的操作
列表基本操作
方括号赋值:ls = [1,2,3]
调用list函数定义:ls = list()
添加:ls.append('f')
插入:ls.insert(0, 'a')
extend(合并,不去重):addlist= ['b','c','a']
ls.extend(addlist)
print(change_tup) #['a', 'e', 'f', 'b', 'c', 'a']
ls.pop()删除并返回指定索引处的值
ls.remove用于按值删除元素,找到一个符合要求的值 *斜体样式*
列表其余操作
# +表示组合(拼接)列表
[1,2,3] + [4,5,6] >>> [1,2,3,4,5,6]
l = [1, 4, 9, 16, 25]
l += [3,5,6]
l >>>>>>> [1,3,4,5,6,9,16,25]
# * 表示列表重复
[1] *4 >>>>>> [1,1,1,1]
# 判断存不存在与列表
4 in [1,2] >>> False
# 嵌套列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
x >>>>> [['a', 'b', 'c'], [1, 2, 3]]
列表的函数
函数或方法 | 说明 | 函数或方法 | 说明 |
---|---|---|---|
len() | 表示元素个数 | list.pop() | 移除列表指定元素 |
list.append() | 末尾添加新对象 | list.reverse() | 反向列表元素 |
list.count() | 统计某元素出现的次数 | list.sort() | 排序 |
list.extend() | 在列表末尾一次性追加另一个序列中的多个值 | list.clear() | 清空列表 |
list.index() | 索引匹配 | list.copy() | 复制 |
list.insert() | 插入 | list.min() | 最小元素 |
list.remove() | 移除列表中某个值的第一匹配项 | list.max() | 最大元素 |
列表栈和队列
- 列表可以很容易的当做一个堆栈来使用,堆栈的规则是后进先出。
- 即:最先进的元素最后一个释放,并且使用append()的方法添加栈顶,使用pop()方法释放元素
stack = [3, 4,5]
stack.append(6)
stack.append(7)
stack >>> [3, 4, 5, 6, 7]
stack.pop() >>>> 7
- 列表也可做队列使用,遵循先进先出的原则。但是在列表的里插入或者从头部弹出的时间复杂度大。
from collections import deque
queue = deque([1,2,3])
queue.append(4)
queue.popleft() >> 1
列表推导式
- 列表推导式是序列创建成列表的简单途径。
- 一般都是根据确定的判定条件创建序列
- 每个列表推导式都在for之后跟随一个表达式, 然后根据表达式的结果返回一个列表
[3*x for x in range(1,10) if x >3]
字典
- 字典中的值是可变的,无序的。
- 字典中的数据必须是键值对的形式。
- 键不可重复,值可重复
- 字典中的键是不可变对象,不能修改(字符串,数字或元组);值是可变对象。
- 字典是一种可变容器模型,存储任意值,包括在{}中
-
字典创建与访问
- 创建
dic = {"abc": abc} 或 dic = dict()
- 访问
dic["abc"] ===> abc
# 修改(键存在)增加(键不存在)
dic["abc"] = 8 ===> 8
# update批量更新
dic = {"name":"老王","age":18,"height":1.75,"gender":"男"}
new_dic = {"name":"小红","hobby":"唱跳rap"} # 如果 有不存在的键 会 增加
dic.update(new_dict)
# 删除
del dic # 删除字典
del dic["abc"] # 删除键
dic.clear() # 清空字典
pop(dic["abc"]) # 删除键对应的值
# 遍历
for key in dic.keys():
pass
for value in dic.values():
pass
for key, values in dic.items():
pass
- List item
元组
- 元组使用(),元素是不可修改,但可以被用作索引,所以也可以当做字典的键
元组创建访问
-
tup = (), 或 tup = "1", "a" :注意, 当元组只包含一个元素时,需要在元素后面加逗号,否则会被当做运算法使用。
-
元组的下标索引从0开始,元组中的元素值是不可修改的,只能对元组进行拼接组合或者删除整个元组。
# 修改元组 tup1 =('1', '2') tup2 = ('3,', '4') tup = tup1 + tup2 ===> ('1', '2', '3', '4')
-
元组的的截取,索引等操作适合列表一样的。
集合
# 创建
a = set()
b = {"1", "2","3"}
# 集合的运算
a = set{"1", "2"}
b = set{ "2","3","4"}
a -b # 集合a中包含而集合b中不包含的元素
a|b # 集合a或b中包含的所有元素
a&b # 集合a和b中都包含了的元素
a^b # 不同时包含于a和b的元素
# 集合推导式
a = {x for x in 'abracadabra' if x not in 'abc'}
a.add(x) # 添加
a.update(x) # 更新
a.remove() # 移除 从后往前移除
a.pop() # 随机移除
len(a) # 集合元素个数
a.clear() # 清空集合
x in a # 判断元素是否在集合中