list
序列是Python中最基本的数据结构
列表(list)用来存储不同的数据类型,使用 [ ]
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
列表的样式(在Python中,列表中元素的数据类型可以不同,可以包含整数、浮点数和复数等,当然,也可以包含列表、元组、字典和集合等)
list1=["李华",'English',150]
list2=["小明","China",200]
访问列表
和列表一样,我们既可以使用下标索引访问列表中的某个元素(得到一个元素的值),也可以使用切片访问列表中的一组元素(得到是子列表)
索引如下(详情请看https://blog.csdn.net/weixin_54111663/article/details/126908105?spm=1001.2014.3001.5502)
list1=["李华",'English',150]
list2=["小明","China",200]
list1[0]="小红"
print(list1)
连接列表
list1=["李华",'English',150]
list2=["小明","China",200]
a=list1+list2
print(a)
for 循环遍历列表
list1=["李华",'English',150]
list2=["小明","China",200]
for i in list1:
print(i)
while循环遍历
name=["校长","主任","班主任"]
i=0
while i<len(name):
print(name[i])
i+=1
列表比较
列表比较需要引入 operator 模块的 eq 方法。
import operator
name=["校长","主任","班主任"]
list1=["李华",'English',150]
list3=["李华",'English',150]
list2=["小明","China",200]
print("operator.eq(name,list1,):",operator.eq(name,list1))
print("operator.eq(name,list2,):",operator.eq(name,list2))
print("operator.eq(list3,list1,):",operator.eq(list3,list1))
内置方法
添加列表元素
append末尾添加
list1=["李华",'English',150]
list3=["李华",'English',150]
list2=["小明","China",200]
list2.append("小黑")
print(list2)
insert()
指定位置加
参数 | 描述 |
---|---|
position | 必需。数字,指定在哪个位置插入值。 |
element | 必需。元素,任何类型(字符串、数字、对象等 |
list1=["李华",'English',150]
list3=["李华",'English',150]
list2=["小明","China",200]
# list2.append("小黑")
list2.insert(1,"xiaohei")
print(list2)
extend()
方法
extend() 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表
list1=["李华",'English',150]
list3=["李华",'English',150]
list2=["小明","China",200]
list2.extend("xiao hua")
list1.extend(list2)
print(list2)
print(list1)
删除列表 del
- 删除单个元素 删除尾部pop
我们可以使用 del list_name[i]
来删除某个指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。
list1=["李华",'English',150]
list3=["李华",'English',150]
list2=["小明","China",200]
del list1[2]
print(list1)
更改列表值
当我们创建列表后,我们可以对列表中的数据项进行修改或更新,当然我们也可以使用 append() 方法来添加列表项。
list1=["李华",'English',150]
list3=["李华",'English',150]
list2=["小明","China",200]
list1[2]=140
print(list1)
查列表(index)
可以查找制定下标范围的数据,并找到他的下标(左开右闭)
list2=["小明","China",200,1,2,3]
print(list2.index(2,0,5))
统计count
list2=["小明","China",200,1,2,3,1,2,2]
print(list2.count(2))
反转reverse排序sort
办公司随机分配老师实验
import random
offices = [[],[],[]]
names=["a","b","c","d","e","f","g","h","i"]
for name in names:
index= random.randint(0,2)
offices[index].append(name)
i=1
for office in offices:
print("办公室%d的人数:%d"%(i,len(office)))
i += 1
for name in offices:
print("%s"%(name),end="\t")
print("\n")
元组(元素不可以修改)
与列表相似,不同之处就在于元组的元素不能被修改。
列表使用的是中括号“[]”,元组使用的是小括号“()”。
列表属于可变类型,元组属于不可变类型。
Python内部对元组进行了大量的优化,访问喝处理速度都比列表快
注意:定义一个只有1个元素的tuple 必须加逗号
增:不允许修改 ,只能进行连接
删除:删除整个元组变量,不能删除元素
dect字典
Python字典是另一种可变容器模型,可存储任意类型对象。如字符串、数字、元组等其他容器模型
因为字典是无序的所以不支持索引和切片。
一般格式:
格式: 字典名={元素1,元素2,...}
元素以键值对存在==key(键值):value(实值)
注意:
- key不可以重复,否则只会保留第一个;
- value值可以重复;
- key可以是任意的数据类型,但不能出现可变的数据类型,保证key唯一;
- key一般形式为字符串。
增
info={"name":"xiaom","age":20}
info["habby"]="play"
print(info["habby"])
删
info={"name":"xiaom","age":20}
del info["name"]
print(info.get("name","wu"))
清空
info={"name":"xiaom","age":20}
info.clear()
print(info.get("name","wu"))
查
set集合
与dictionary类似 也是key组合 但不存储value 由于key不可以重复 所以 在set中没有重复的key
- 基本特点:
(1) 无序性
(2) 确定性
(3) 不重复性 - set() 实质:内部进行 可迭代性的 for 循环
总结
是否有序 是否 可变类型
- 列表[士 有序 可变类型
- 元组() 有序 不可变类型
- 字典{ } 无序 key不可变val可变
- 集合{} 无序 可变类型(不重复)