Python-学习之路-06 内置数据结构 list set d
2019-01-28 本文已影响0人
末世狂人
元组
- len:获取元组的长度
- max\min:元组中最大值或最小值
- 如果元组中有多个最大或最小值,则只打印一次最大或最小的值
- 以下函数,对list基本适用
函数
- 基本跟list通用
- count: 计算指定数据出现的次数
- index: 获取指定数据出现的下标位置
- 如果指定的值有多个,那么则返回第一个
# max min
l = (1,1,3,3,2,5,6,7,7,7)
print(max(l))
print(min(l))
7
1
变量交换法
- 两个变量的交换
a,b = b,a
# 变量交换
a = 1
b = 2
a,b = b,a
print(a)
print(b)
2
1
集合 set
- 无序并且数据是唯一的一个列表,集合中每一个数据成为一个元素
- 定义: set()或者{}
- 如果使用{}来定义set,那么大括号中必须要有值,否则定义出来的是dict
- set()也可用来将其他类型转换成set类型
- 特征:
- 集合内数据无序,即无法使用索引和分片
- 集合内数据具有唯一性,可以用来排除重复数据
- 集合内的数据类型:str\int\float\tuple等,即内部只能放置可哈希的数据
# 集合的定义
s = set()
#或者
# 如果使用{}来定义set,那么大括号中必须要有值,否则定义出来的是dict
s = {1,23,4,5,6,7}
print(type(s))
<class 'set'>
# 集合的遍历操作
s = {"i","love","litinghui",4,5,6}
for i in s:
print(i,end=" ")
print("")
# 带有元组的集合遍历
s = {(1,2,3),("i","love","litinghui"),(9024,456,"2345")}
for k,m,n in s:
print(k,"----",m,"-----",n,"----")
print("")
for k in s:
print(k)
4 5 6 i litinghui love
i ---- love ----- litinghui ----
9024 ---- 456 ----- 2345 ----
1 ---- 2 ----- 3 ----
('i', 'love', 'litinghui')
(9024, 456, '2345')
(1, 2, 3)
集合函数或关于集合的函数
- lel: 同上
- max\min:同上
- add: 向集合内添加元素
- clear: 清空集合内的元素
- copy:同list
- remove:同list
- discard: 移除集合中指定的值
- 跟remove的作用一致,但是如果没有指定的值的话,discard不会报错,remove则会报错
- pop:随机移除一个元素
- intersection: 交集
- difference: 差集
- union:并集
- issubset: 检查一个集合是否为另一个的子集
- issuperset: 检查一个集合是否是另一个的超集'
# pop
s = {11,21,3,4,5,6,7,8,98}
d = s.pop()
print(d)
print(s)
98
{3, 4, 5, 6, 7, 8, 11, 21}
集合的数学操作
- -(减号)
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8}
s = s1-s2
print(s)
{1, 2, 3}
frozenset:冰冻集合
- 冰冻集合就是不可对集合进行任何修改的集合
- frozenset是一种特殊的集合
dict 字典
- 字典是一种组合数据,没有顺序的组合数据,数据以健值对的形式存在
- 字典的创建:
- 创建字典由空的{}来创建
- 以键值对的方式来创建:{key:value,key:value,key:value}
- 利用关键字参数: {key=value,key=value,key=value}
- dict()
- 特征
- 字典是序列类型,但是无法进行分片和索引
- 每组数据都是由键值对的形式存在
- key:必须是可哈希的值
- value:任何值
# 字典的常见操作
d = {"one":1,"tow":2,"three":3}
#访问
print(d["one"])
#修改
d["one"] = "eins"
print(d["one"])
#删除
del d["one"]
print(d)
1
eins
{'tow': 2, 'three': 3}
# 成员检测 in\not in
# 成员检测是key的内容
# 遍历
d = {"one":1,"tow":2,"three":3}
for k in d:
print(d[k])
for k in d.keys():
print(d[k])
#直接访问值
for v in d.values():
print(v)
# 获取每一个键值对
for k,v in d.items():
print(k,"--->",v)
1
2
3
1
2
3
1
2
3
one ---> 1
tow ---> 2
three ---> 3
# 字典生成式
d = {"one":1,"tow":2,"three":3}
## 常规的生成式
dd = {k:v for k,v in d.items()}
print(dd)
## 限制条件的生成式
ddd = {k:v for k,v in d.items() if v%2==0}
print(ddd)
{'one': 1, 'tow': 2, 'three': 3}
{'tow': 2}
字典的相关函数
- len\max\min\dict
- str() :以字符串的形似返回字典的key:value
- clear: 清空字典
- items: 返回字典的键值对组成的元组格式
- keys: 返回字典的健组成的一个结构
- values: 返回字典的值组成的一个结构
- get: 根据指定健返回相应的值,可以设置默认值
- get(d.get("不存在的key","默认值"))
- 默认值可省略,省略后如果key不存在则返回None
- fromkeys:使用指定的序列作为健,使用一个值作为所有健的值
# fromkeys
l = ["one","tow","three"]
d = dict.fromkeys(l,666)
print(d)
{'one': 666, 'tow': 666, 'three': 666}