Python基础——列表、元组、字典、集合

列表

概念:有序的可变的元素集合

定义方式1:[元素1,元素2……]例如:nums = [1,2,3,4,5]
在这里插入图片描述
定义方式2:

  • 列表生成式:nums = range(1,100,2)第三个参数是步长,可省略
    在这里插入图片描述
  • 列表推导式【表达式 for 变量 in 列表】、【表达式 for 变量 in 列表 if 条件】
    例如:resultList = [num ** 2 for num in nums]在这里插入图片描述
    列表的嵌套:列表中的元素还可以是列表
    区分C语言中数组中不可以放不同的数据类型

列表的操作

增:
append 用法l.append(object) 返回值None
在这里插入图片描述
insert 用法l.insert(index, object) 返回值None
在这里插入图片描述
extend 用法l.extend(iterable) 参数:可迭代的对象(字符串、列表、数组等)。在原列表基础上扩展
在这里插入图片描述
乘法运算,例如:[a] * 3 = [a, a, a]
在这里插入图片描述
加法运算,例如:[a] + [b] = [a, b] 注意形成一个新列表
在这里插入图片描述

del 语句,可以指定一个指定元素(对象),注意:可以删除整个列表,删除一个变量,也可以删除某个元素。
在这里插入图片描述
pop,作用:移除并返回列表中指定索引对应元素。语法:l.pop(index=-1),参数:index元素索引,默认为-1,也就对应列表的最后一个元素。
在这里插入图片描述
remove 移除列表中指定元素。注意:会直接修改原数组,若元素不存在,会报错,若存在多个元素,则只删除最左边的。
在这里插入图片描述

例如:name[index] = 666,不做过多陈述

获取单个元素:items[index]注意负索引。
在这里插入图片描述
获取元素索引:index(),找到第一个就停止。
在这里插入图片描述
从第三个开始查找2
在这里插入图片描述
获取指定元素个数:count()
在这里插入图片描述
获取多个元素,切片。Items[start?step]
在这里插入图片描述

遍历:
方式1:根据元素进行遍历
方式2:根据索引进行遍历
方式3:创建对应的枚举对象。通过枚举函数,生成的一个新的对象。作用:函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据下标和数据。
语法:enumerate(sequence,[start=0])
在这里插入图片描述
方式4:使用迭代器进行遍历(迭代器介绍:):构造迭代器,使用for in 进行迭代。

判定:
元素 in 列表
元素 not in 列表
在这里插入图片描述

元组

概念:
有序的不可变的元素集合(与列表的区别就是元组元素不能修改!)
定义:
一个元素写法:t = (666,)
多个元素写法:t = (1,2)
多个对象,以逗号隔开,默认为元组:tuple = 1, 2, 3, “s”
从列表转换成元组:tuple(列表)

常用操作只有查
其他操作:
获取
tuple.count(item) 统计元组中指定元素的个数
tuple.index(item) 获取元组中指定元素的索引
len(tuple) 获取元组中元素的个数
max/min(tuple)获取元组中最大/最小的值
判定:
元素 in 元组
元素 not in 元组
拼接
乘法:(元素1, 元素2, ……) * int类型数值 = (元素1, 元素2, 元素1, 元素2,……)
加法:(元素1, 元素2) + (元素a, 元素b) = (元素1, 元素2, 元素a, 元素b)
拆包:
a, b = (1, 2)
a = 1 b = 2

字典

概念:
无序的,可变的键值对集合
定义:
方式1:{key:value, key:value, …}
方式2:fromkeys(S, v=None},静态方法,类和对象都可以调用,类调用dict.fromkeys(“abc”, 123},结果:{‘a’:123, ‘b’:123, ‘c’:123}

注意事项:
key不能重复,必须是任意不可变类型
若key重复,后边的会把前面的覆盖掉
原因:
Python的字典,采用哈希的方式实现。
存储过程:
初始化一个哈希表,根据给定的key,通过某些操作,得到一个“哈希表”中的索引位置,根据索引位置,存储给定的“值”
查找过程:
再次使用哈希函数将key转化为对应的列表的索引,并定位到列表的位置获取value
存在意义:
可以通过key,访问对应的值,使得这种访问更具有意义,查询效率得到很大的提升

常用操作


dic[key] = value,当key不存在,就是一个增加

del dic[key]
dic.pop(key[, default]) 删除指定的键值对,并返回对应的值,若key不存在,那么直接返回给定的default值,不做删除动作,如果没有给定默认值,则报错
dic.popitem() 删除按升序排序后的第一个键值对,并以元组的形式返回该键值对,如果字典为空,则报错
dic.clear() 删除字典内所有的键值对,返回None,注意:字典对象本身还存在,只不过内容被清空
只能改值,不能改key
修改单个键值对:dic[key] = value
修改多个键值对:oldDic.update(newDic) 根据新字典,批量的修改旧字典中的键值对,如果旧字典没有的对应的key,则新增键值对


获取单个值
dic[key] :获取单个值
dic.get(key[, default]):不存在返回默认值,没有默认值报错。不会新增键值对
dic.setdefault(key[, default]) 获取指定key对应的值,若不存在,则设置给定默认值,并返回默认设置,如果没有设置默认值,则用None代替
获取所有值
dic.values()
获取所有键
dic.keys()
获取字典的键值对
dic.items()
遍历
for in 先获取所有的值/键/键值对,再遍历
for x, y in info.items()

计算
len(info) 键值对的个数
判定
x (not) in dic 判定dic 中的key,是否存在x

集合

概念:
无序的,不可随机访问的,不可重复的元素集合
分为可变集合(set)和不可变集合(frozenset,创建好之后,无法增删改)
定义:
可变集合:s = {1, 2, 3}或者s = set(可迭代对象)
不可变集合:s2 = frozenset(iterable),为dic时,只会获取key作为set的元素

注意事项:
1.创建一个空集合时,需要使用set()或者frozenset(),不能使用s = {},会被识别成字典
2.集合中的元素,必须是可哈希的值,如果一个对象在自己的生命周期中有一哈希值时不可改变的,那么它就是可哈希的。理解为不可变类型。
3.如果集合中的元素值出现重复,则会被合并为1个

常用操作


s.add()

s.remove(element)指定删除set对象中的一个元素,若没有,返回错误
s.discard(element) 指定删除set对象中的一个元素,若没有,则do nothing
s.pop(element) 指定删除集合中的一个元素,若集合为空,则返回错误
s.clear()晴空一个集合的所有元素

元素为不可变类型,不能修改


无法通过key或者索引进行查询
1.通过 for in 进行遍历
2. 通过迭代器进行访问

交集
逻辑与“&”
intersection(Iterable) 字典值判定key。当可变集合与不可变集合取交集时,结果取前面集合的属性。
在这里插入图片描述
在这里插入图片描述
intersection_update() 交集计算完毕后,会再次赋值给原对象,会更改原对象,所以只适用于可变集合

并集
union()返回并集
在这里插入图片描述
逻辑或“|”
在这里插入图片描述
update()更新并集,适用于可变集合
在这里插入图片描述
差集
difference()
算术运算符减“-”
difference_update()

判定
isdisjoint()两个集合不相交
issuperset()一个集合包含另一个集合
issubset()一个集合包含于另一个集合

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值