文章目录
Python的数据类型
5个标准数据类型
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
集合类型
- 列表
- 元组
- 字典
Python中两种基本的数据结构
- 序列
- 映射
- 序列包含可变数列、不可变的元组。映射就是字典
- 列表和元组只是一类元数据的集合体,而字典是名字来引用值的数据
切片
-
访问序列元素的另一种方法,可以访问一定范围内的元素
-
sname[start:end:step]
sname
序列的名称start
起始位置(包括该位置),默认为0end
截止位置(不包括该位置),不指定默认为序列的长度step
表示步长,默认为1
列表
- 创建列表 [ , ]
- 列表内的元素可以是不同数据类型
- 数组里只能放一种类型的数据
- Python是最通用的复合型数据
# 创建普通列表
>>> movie=['我和我的祖国','中国机长','哪吒','攀登者']
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> number=[1,2,3,4]
>>> number
[1, 2, 3, 4]
言简意赅,就是定义一个列表,并注明列表中有哪些量,就像是数学中的数组。
# 创建混合列表
>>> mix=[1,"70周年大阅兵",3.14,[12,3,67.9]]
>>> mix
[1, '70周年大阅兵', 3.14, [12, 3, 67.9]]
# 创建空列表
>>> empty=[] #提前定义一个空列表以后备用
>>> empty
[]
通常可以定义一个空的列表,留作以后备用
给列表添加元素
append
(附加) 一次只能添加一个元素,在末尾添加extend
(延伸) 用新的列表扩展列表insert
(插入) 向指定位置添加元素
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> number
[1, 2, 3, 4]
# append是在列表movie最后添加一个元素
>>> movie.append("双子杀手")
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者', '双子杀手']
# extend是向列表中添加一个列表的元素,适合向列表中添加多个元素
>>> movie.extend(["犯罪现场","急速逃脱"])
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者', '双子杀手', '犯罪现场', '急速逃脱']
# insert是可以向列表中指定位置添加元素
>>> movie.insert(1,"宠爱")
>>> movie
['我和我的祖国', '宠爱', '中国机长', '哪吒', '攀登者', '双子杀手', '犯罪现场', '急速逃脱']
>>> movie.insert(5,"风暴")
>>> movie
['我和我的祖国', '宠爱', '中国机长', '哪吒', '攀登者', '风暴', '双子杀手', '犯罪现场', '急速逃脱']
需要注意的是,使用
insert
插入数据时,前面的序号,即为元素的编号,称之为索引。索引是以0开始的。所以第一个元素的索引为0,以此类推!
删除列表中的元素
remove
必须要知道元素的值del语句
del是一个语句关键字pop
默认删除最后一个元素的值,也可以指定位置元素的值,会返回一个值
# 创建一个列表
>>> movie=['我和我的祖国','中国机长','哪吒','攀登者']
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
# remove必须要指定元素的值才可以删除
>>> movie.remove("攀登者")
>>> movie
['我和我的祖国', '中国机长', '哪吒']
# del语句删除列表中的元素时,可以不需要知道元素的值
# 只需要知道元素对应的编号,即索引。删除索引对应的元素。
>>> del movie[0]
>>> movie
['中国机长', '哪吒']
# del语句还可以删除整个列表
>>> del movie
>>> movie
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
movie
NameError: name 'movie' is not defined
# 创建列表
>>> movie=["我和我的祖国","中国机长","哪吒","攀登者"]
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
# pop默认删除列表中的最后一个元素
>>> movie.pop()
'攀登者'
>>> movie
['我和我的祖国', '中国机长', '哪吒']
# pop也可以删除指定元素
>>> movie.pop(1)
'中国机长'
>>> movie
['我和我的祖国', '哪吒']
读取列表
- 列表的取值
- 读取单个值,利用索引值
- 获取多个元素的值,切片、截取、分片(slice)
# 创建列表
>>> movie=["我和我的祖国","中国机长","哪吒","攀登者"]
>>> movie
['我和我的祖国', '中国机长', '哪吒', '攀登者']
# 列表名[number]即可读取指定元素的值
>>> movie[1]
'中国机长'
# 列表名[number1:number2]即可读取指定范围内的元素的值。
# 不包括索引为number2的元素。就像是我们数学上的半闭半开区间。
>>> movie[1:3]
['中国机长', '哪吒']
>>> movie[:3]
['我和我的祖国', '中国机长', '哪吒']
# 列表名[:]表示列表内的全部元素,可用在列表的拷贝
>>> movie[:]
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> movie2=movie[:]
>>> movie2
['我和我的祖国', '中国机长', '哪吒', '攀登者']
>>> movie3=movie
>>> movie3
['我和我的祖国', '中国机长', '哪吒', '攀登者']
# 列表名[:number]与指定范围一样,是指定从索引为第0个元素到number个元素。
# 同样不包括number。
>>> movie4=movie[:3]
>>> movie4
['我和我的祖国', '中国机长', '哪吒']
列表的常用操作符
- 比较操作符
- 逻辑操作符
>>> list1=[100]
>>> list2=[666]
# 判断list1是否大于list2,False表示否,True表示是
>>> list1>list2 #比较操作符
False
>>> list1=[100,676]
>>> list2=[20,989,77777]
# 在做比较少的时候,只比较索引为0的元素,即列表中的第一个元素
>>> list1>list2
True
>>> list3=[123,456]
# 判断list1>list2 并且 list1<list3?
>>> (list1>list2) and (list1<list3) #逻辑操作符
True
- 连接操作符
>>> list1=[123,456]
>>> list2=[321,654]
# 连接操作符,即将两个列表中的元素连接到一个列表中。就像是合并。
>>> list3=list1+list2 #连接操作符
>>> list3
[123, 456, 321, 654]
- 重复操作符
- 成员关系操作符
>>> list1=[100]
# 即将某列表重复指定遍输出
>>> list1*3 #重复操作符
[100, 100, 100]
# 将列表中的元素值同等的重复指定遍并保存
>>> list1
[100]
>>> list1*=3
>>> list1
[100, 100, 100]
# 即判断某个元素是否存在于某列表中
>>> list2=["计算机学院","外语学院","商学院","建筑学院"]
>>> 100 in list2 #成员关系操作符
False
>>> 100 not in list2
True
>>> list3=[123,["北京","武汉"],456]
>>> "北京" in list3
False
>>> "北京" in list3[1]
True
- 当列表中还有列表时,可以使用列表名[num][num]来指定列表中的第几个列表的哪个元素。
>>> list3
[123, ['北京', '武汉'], 456]
# 索引为1的列表中第一个元素元素
>>> list3[1][0] #类似二维数组
'北京'
>>> list3[1].extend(["西安","十堰","黄冈"])
>>> list3
[123, ['北京', '武汉', '西安', '十堰', '黄冈'], 456]
>>> list3[1][3]
'十堰'
拷贝与分片拷贝
>>> list1=[9,8,7,6,5,4,3,2,1]
# 拷贝即将整个列表复制
>>> list2=list1 #拷贝,类似于变量的赋值操作
>>> list2
[9, 8, 7, 6, 5, 4, 3, 2, 1]
# 分片拷贝是将列表中的某一段复制到另一列表中
>>> list3=list1[:] #分片拷贝
>>> list3
[9, 8, 7, 6, 5, 4, 3, 2, 1]
排序
sort
(种类)sort
就像是Linux中的功能一样,排序,默认是正序
>>> list1.sort() #排序
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list2
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list3 #排序不会传递给list3
[9, 8, 7, 6, 5, 4, 3, 2, 1]
访问值、切片(截取/取值)
>>> list=[1,200.99,'Python',True]
>>> list
[1, 200.99, 'Python', True]
>>> print(list[0]) #输出列表的第一个元素
1
>>> print(list[0:3]) #输出列表的0、1、2元素
[1, 200.99, 'Python']
>>> print(list[1:3]) #输出列表的1、2元素
[200.99, 'Python']
- 需要注意的是,这里的数字并不是代表着列表中第几个元素,而是代表它们的索引。
- 元素值可以使不同类型,也可以是相同类型。
更新/修改列表
- 更新列表
>>> list=[1,200.99,'Python',True]
>>> list
[1, 200.99, 'Python', True]
# 指定元素进行修改
>>> list[0]=100 #修改列表的0元素为100
>>> print(list)
[100, 200.99, 'Python', True]
- 删除列表元素
>>> list=[1,200.99,'Python',True]
# 删除列表中的指定元素
>>> del list[0] #删除列表的第一个元素
>>> print(list)
[200.99, 'Python', True]
- 列表相加/组合
>>> list1=[1,200.99,'Python',True]
>>> list2=['A','B','C']
# 即将两个列表中的元素合并
>>> print(list1+list2) #两个列表相加
[1, 200.99, 'Python', True, 'A', 'B', 'C']
- 列表相乘
>>> list=[1,200.99]
# 与列表的重复操作相同,是将元素重复制定次
>>> print(list*3) #列表元素乘3
[1, 200.99, 1, 200.99, 1, 200.99]
- 输出最小、最大、长度
>>> list1=[1,200.99,True]
>>> print(min(list1)) #输出列表最小元素
1
>>> print(max(list1)) #输出列表最大元素
200.99
>>> print(len(list1)) #输出列表长度,即元素个数
3
min——minimum(最小)
max——maximum(最大)
len——length(长度)
成员检查
- 与列表的成员关系操作符相同
>>> list=[1,200.99]
>>> print(6 in list) #检查元素6是否在list列表中
False
>>> print(1 in list) #检查元素1是否在list列表中
True
函数
list函数
>>> name="Hello"
>>> print(list('Hello')) #将元祖转换为列表,使用单引号
['H', 'e', 'l', 'l', 'o']
>>> print(list(name))
['H', 'e', 'l', 'l', 'o']
count()函数
- 统计列表中某元素出现的次数
>>> list=[1,2,3,3,3]
# 统计list列表中元素3出现的次数
>>> print(list.count(3))
3
extend()函数
- 修改原序列,连接两个序列产生新的序列
>>> list1=[1,2,3,3,3,]
>>> list2=['a','b','c']
# 即将list2中的元素拓展到列表list1中
>>> list1.extend(list2)
>>> print(list1)
[1, 2, 3, 3, 3, 'a', 'b', 'c']
>>> print(list2)
['a', 'b', 'c']
append()函数
- 往列表的最后一个位置插入(入栈)操作
>>> list=[1, 2, 3, 3, 3]
# 向列表list最后插入一个元素
>>> list.append('Python')
>>> print(list)
[1, 2, 3, 3, 3, 'Python']
insert()函数
- 将元素插入到列表的指定位置
>>> list=[1,2,3,3,3,]
# 向list列表中第二个位置插入元素
>>> list.insert(1,'Python')
>>> print(list)
[1, 'Python', 2, 3, 3, 3]
pop()函数
- 删除指定位置元素
>>> list=[1,2,3,3,3,]
# 默认删除列表的最后一个元素,并将删除的元素打印出来
>>> list.pop()
3
>>> print(list)
[1, 2, 3, 3]
# 指定删除索引为1的元素
>>> list.pop(1)
2
>>> print(list)
[1, 3, 3]
pop()
函数默认删除的是最后一个元素(出栈)
remove()函数
- 删除列表中某一个值的第一个匹配选项
>>> list=[1,2,3,3,3,]
# 删除列表中第一个匹配到的3,即原索引为2的元素
>>> list.remove(3)
>>> print(list)
[1, 2, 3, 3]
>>>
- 删除列表中所有的匹配项
list=[1,2,3,3,3]
while 3 in list:
list.remove(3)
print(list)
- 这里使用了一个
while
循环,所以需要在新的模块写。File——New File- 然后再写入以上代码,注意循环所做的语句一定要空四格,或者按一个Tab。gou肉肉一提醒我就想起来Tab也是四个空格了。
- 然后需要保存,再运行。Run——Run Module
reverse()函数
- 翻转列表
list=[1,2,3,3,3]
list.reverse()
print(list)
- 对元素进行排序
>>> list=[1,5,3,9,6]
>>> print(list.reverse())
None
- reverse(颠倒),即将列表中的元素颠倒顺序
print(list.reverse())
的输出为None,是因为reverse()
没有返回值
index()函数
- 从列表中找出与某个元素匹配的第一个匹配项的位置
>>> list=[1,2,3,3,3,3,3,3,3]
>>> print(list.index(3))
2
# 表示匹配list列表中元素3在4-8这个索引范围内第一次匹配到的位置
>>> print(list.index(3,4,8))
4
sort()函数
- 元素进行排序
>>> list=[100,80,200,1]
>>> list.sort()
>>> print(list)
[1, 80, 100, 200]
>>> list=[100,80,200,1]
>>> print(list.sort())
None
print(list.sort())
输出为None,因为sort()没有返回值
以上内容纯属自学,如有错误或不详,敬请指出!
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!