标签:容器 下标 PYTHON 元素 list key 字符串 数据
PYTHON数据容器
- 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以使任意类型的数据
- 数据容器根据特点的不同,分为五类: 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
list(列表)
特点
- 可以同时容纳不同类型的元素有序存储,允许重复数据存在,可以修改
基本语法
-
变量名称 = [元素1,元素2,元素3,元素4,元素5...]
-
定义空列表:
-
元素的数据类型没有任何限制,列表也可以是元素,这样就定义了嵌套列表
a = ['A',213,'C',[1,2,3]]
for x in a:
print(x)
if type(x) is list:
for y in x :
print(y)
下标索引
a = ['A',213,'C',[1,2,3]]
# 正序
for x in range(0, len(a)):
print(a[x])
# 逆序
for x in range(0, len(a)):
print(a[-x-1])
# 嵌套
for x in range(0, len(a)):
print(a[x])
if type(a[x]) is list:
for y in range(0,len(a[x])):
print(a[x][y])
相关操作
方法 |
作用 |
list.index(元素) |
查询下标索引 |
list[x] = 值 |
修改特定位置的值 |
list.insert(下标,元素) |
插入元素 |
list.append(元素) |
追加元素 |
list.extend(其他数据容器) |
将其他数据容器中的元素依次追加 |
del list[下标] |
删除元素 |
list.pop(下标) |
取出下标对应元素,有返回值 |
list.remove(元素) |
删除某元素在列表中的第一个匹配项 |
list.clear() |
清空列表 |
list.count(元素) |
统计某元素在列表中的数量 |
len(list) |
统计列表内有多少元素 |
遍历
a = [21,25,21,23,22,20]
b = 0
while(b<len(a)):
print(a[b])
b+=1
for x in a:
print(x)
tuple(元组)
特点
- 可以同时容纳不同类型的元素,有序存储,允许重复数据存在,不可修改
基本语法
- 变量名称 = (元素1,元素2,元素3,元素4,元素5...)
- 定义空元组:
相关操作
方法 |
作用 |
tuple.index(元素) |
查找某元素第一次找到时的下标 |
tuple.count(元素) |
统计某个元素在当前元组中出现的次数 |
len(tuple) |
统计元组内的元素个数 |
str(字符串)
相关操作
方法 |
作用 |
str.index(参数) |
在字符串中查找参数,返回起始参数位置 |
str.replace(字符串1,字符串2) |
将字符串中的字符串1替换为字符串2返回(不是修改字符串本身,而是得到新字符串) |
str.split(分隔符字符串) |
按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中 |
str.strip()/str.strip(参数) |
去掉字符串前后的空格;有参数则去掉字符串前后的参数内容 |
str.count(参数) |
返回参数在字符串中出现的次数 |
len(str) |
返回字符串长度 |
序列的切片操作
- 序列: 是指内容连续、有序,可使用下标索引的一类数据容器
- 列表、元组、字符串,均可以视为序列
- 切片: 从一个序列中取出一个子序列
语法
- 序列[起始下标:结束下标:步长]
- 注意事项:
- 取头不取尾
- 起始下标留空表示从头开始
- 结束下标留空表示截取到结尾
- 步长为负表示反向取(起始下标和结束下标也要反向标记)
set(集合)
特点
- 列表可修改、不允许数据重复、内容无序
- 因为集合是无序的,所以集合不支持下标索引访问
基本语法
相关操作
方法 |
作用 |
set.add(元素) |
添加元素 |
set.remove(元素) |
移除元素 |
set.pop() |
随机取出一个元素 |
set.clear() |
清空集合 |
set1.difference(set2) |
返回2个集合的差集(集合1有而集合2没有的) |
set1.difference_update(set2) |
消除2个集合的差集(在集合1中删除和集合2相同的元素) |
set1.union(set2) |
将2个集合合并为1个,产生新集合 |
len(set) |
返回集合元素个数 |
遍历
- 因为集合不支持下标索引,所以不能使用while循环遍历
dict(字典、映射)
特点
- 可以同时容纳不同类型的元素,key不允许重复,不可用下标索引,可以修改
基本语法
字典的嵌套
- 字典的key和value可以使任意数据类型(key不可为字典)
a={
"王力宏":{
"语文":99,
"数学":98,
"英语":97,
},
"林俊杰":{
"语文":87,
"数学":86,
"英语":85,
},
"周杰伦":{
"语文":73,
"数学":72,
"英语":71,
}
}
print(a["王力宏"]["语文"])
相关操作
方法 |
作用 |
dict[key]=value |
key存在,则新增元素;key不存在,更新元素 |
dict.pop(key) |
获得指定key的value,在dict中删除该key |
dict.clear() |
清空元素 |
dict.keys() |
得到字典中的全部key |
len(dict) |
获取字段中的元素数量 |
遍历字典
a={
"王力宏":{
"语文":99,
"数学":98,
"英语":97,
},
"林俊杰":{
"语文":87,
"数学":86,
"英语":85,
},
"周杰伦":{
"语文":73,
"数学":72,
"英语":71,
}
}
# x是key
for x in a:
print(x,a[x])
# 练习
# 通过for循环对所有级别为1级的员工,级别上升1级,薪水增加1000元
a={
"王力宏":{
"部门":"科技",
"工资":3000,
"级别":1
},
"周杰伦":{
"部门":"市场部",
"工资":5000,
"级别":2
},
"林俊杰":{
"部门":"市场",
"工资":7000,
"级别":3
},
"张学友":{
"部门":"科技",
"工资":4000,
"级别":1
},
"刘德华":{
"部门":"市场",
"工资":6000,
"级别":2
}
}
print(a)
for x in a:
if(a[x]["级别"]==1):
a[x]["级别"] += 1
a[x]["工资"] += 1000
print(a)
总结
|
列表list |
元组tuple |
字符串str |
集合set |
字典dict |
元素类型 |
任意 |
任意 |
字符 |
任意 |
任意(key的类型不能为字典) |
下标索引 |
支持 |
支持 |
支持 |
不支持 |
不支持 |
重复元素 |
支持 |
支持 |
支持 |
不支持 |
不支持 |
是否可改 |
是 |
否 |
否 |
是 |
是 |
是否有序 |
是 |
是 |
是 |
否 |
否 |
通用操作
方法 |
作用 |
len(容器) |
统计容器的元素个数 |
max(容器) |
统计容器的最大元素 |
min(容器) |
统计容器的最小元素 |
目标容器类型(容器) |
转换容器 |
sorted(容器,[reverse=True]) (reverse默认为False,逆序则设为True) |
排序,返回列表对象 |
标签:容器,
下标,
PYTHON,
元素,
list,
key,
字符串,
数据
From: https://www.cnblogs.com/Learn1ng/p/17106337.html