数据结构
列表list
定义
方式1:[]
s=[1,'a','1',1.0]
print(s)
a=range(0,5,2)
print(a,type(a)) --type(a)为range
a=[range(0,5,2)]
print(a,type(a)) --type(a)为list
方式2:list()
s=list([1,'a','1',1.0])
print(s)
a=[range(5)]
print(a,type(a))
b=range(5)
print(b,b[1],type(b))
c=[x for x in range(5)]
print(c,c[1],type(c))
--输出结果为
[range(0, 5)] <class 'list'>
range(0, 5) 1 <class 'range'>
[0, 1, 2, 3, 4] 1 <class 'list'>
访问
正索引:从左往右,从0开始,到列表长度len(列表)
负索引:从右往左,从-1开始
a=[x for x in range(5)]
print(a)
b=a[0:-1]
print(b)
--输出为
[0, 1, 2, 3, 4]
[0, 1, 2, 3]
a[1:]--第一个元素之后,不包含第一个
a[:-1]--打印最后一个元素之前的
a[::-1]--倒序输出
a*2--输出两遍
1 in a--判断是否存在
for i in a:
print(i)--遍历输出
添加
添加一个元素:+,.append,.insert
添加多个元素:+,.extend
a=[x for x in range(5)]
#使用+,连接两个列表,必须是列表,带[]
a+=['a']
print(a)
#.append,追加一个元素,只能追加一个元素,列表也可以作为一个元素
a.append(99)
print(a)
#.extend,追加多个元素
a.extend(['01','10'])
print(a)
#指定索引位置,插入元素
a.insert(1,['o','i'])
print(a)
--输出结果为
[0, 1, 2, 3, 4, 'a']
[0, 1, 2, 3, 4, 'a', 99]
[0, 1, 2, 3, 4, 'a', 99, '01', '10']
[0, ['o', 'i'], 1, 2, 3, 4, 'a', 99, '01', '10']
删除
a=list(range(5))
#弹出第一个元素
b=a.pop(0)
print(a,b)
#删除指定对象
a.remove(1)
print(a)
#删除列表
del a
--输出
[1, 2, 3, 4] 0
[2, 3, 4]
修改
a=list(range(5))
#修改一个值
a[0]=99
print(a)
#修改多个值,修改最后两个值
a[len(a)-2:]=[100,101]
print(a)
--输出
[99, 1, 2, 3, 4]
[99, 1, 2, 100, 101]
查看
a.count('1')--查看出现的次数
a.index('1')--查看出现的最小索引值
a.index('1',1,5)--从索引1到5中查找
排序
#对字符串不区分大小写排序,对数值从小到大排序
a.sort()
#乱序,随机打乱
import random
random.shuffle(a)
元组tuple
元组与列表
- 列表创建用[],元组()
- 列表元素可修改,元组不可修改
- 列表可变类型,元组不可变类型
- python对元组进行了优化,访问和处理速度比列表快
创建
#tuple()
a=tuple((1,2,3))
#()
a=(1,2,3)
当创建的元组只包含一个元素时,必须带逗号',',a=(1,)
访问
与列表一样,使用索引访问,a[索引]
删除
元组不能只删除一个或某些元素,只能删除整个元组,del a
字典dict
创建
a={'zs':100,'ls':99}
访问、修改、增加、删除
#访问
a['zs']
#修改
a['zs']=0
#增加
a['ww']=88
#删除
del a['zs']
集合set
创建
#直接使用{}
a={'1','2','3'}
#使用set(),将列表、元组等迭代对象转换为集合
a=set([1,2,3])
增加、删除
#增加
a.add('4')
#删除集合
del a
#随机删除一个元素
a.pop()
#删除指定元素
a.remove('4')
#删除全部元素
a.clear