IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础(二) -> 正文阅读

[Python知识库]Python基础(二)

序列

序列是一种数据存储方式,序列中存储的是整数对象的地址么人不是整数对象的值。Python中常用序列结构有:字符串,列表,元组,字典,集合。

列表

用于存储关于任意数目,任意类型的数据集合。是内置可变序列,包含多个元素的有序连续的内存空间。
在这里插入图片描述
字符串和列表都是序列类型,字符串是字符序列,列表是任何元素的序列。字符串的许多方法,在列表中也有类似的用法,几乎一模一样。

创建列表

  1. 基本语法[]创建
a = [1,'a',23,'sherry']
  1. list()创建
    将任何
    可迭代数据
    转化为列表。
   a = list() #创建空列表
   a = list('sherry') #将序列对象转换为列表对象
   a = list(range(10)) #将整数序列创建为列表
  1. range()创建
    创建整数列表。
    range([start,] end [,step])
  2. 推导式生成
a = [x*2 for x in range(5)]  #循环创建多个元素
a = [x*2 for x in range(100) if x%9 == 0] #通过if过滤元素

列表元素的增加和删除

我们一般在列表的尾部添加或删除元素,以大大提高列表的操作效率。

  1. 元素增加
    append()方法:在列表尾部添加对象
    +运算符操作:创建新的列表对象,将原列表的元素和新列表的元素复制到新的列表对象中。
    extend()方法:将目标列表的所有元素添加到本列表的尾部,原地操作,不创建新对象 【推荐使用】。
    insert()方法:将指定元素插入到列表任意位置,会导致插入位置后的列表的元素移动,会影响处理速度。 涉及大量运算时应避免使用。
    乘法扩展:生成一个新列表,新列表元素是原列表元素的多次重复
a = list()
a = list('abc') # a = ['a','b','c']
a.append(10)	#在列表尾部添加对象10
a = a + ['b','c'] #创建新对象,赋值a和['b','c']元素
a.extend([50,60]) #尾部插入列表[50,60],推荐使用
a.insert(2,'sherry') #在位置2添加元素'sherry'  
b = a*3 #将a的内容赋值3次
  1. 元素删除
    del 删除:删除位置元素全部前移
    在这里插入图片描述
    pop()方法删除并返回指定位置元素,如果未包含指定位置则默认操作列表最后一个元素(从尾部弹出)。
    remove()方法:删除首次出现的指定元素,若不存在该元素则抛出异常。
a = range(5) # a = [0,1,2,3,4]
del a[0] # a = [1,2,3,4]
b = a.pop(1) # a = [1,3,4] b = 2
a = [10,20,30,10,20,30]
a.remove(20) # a = [10,30,10,20,30]
a.remove('sherry') #抛出异常

列表元素的访问和计数

  1. 通过索引直接访问元素
    列表索引范围是[0,len-1],超出这个范围则会抛出异常。
  2. index()获得指定元素在列表中首次出现的索引
    index(value,[start,[end]])
a = [10,20,30,10,20,30]
a.index(20) 		#返回1
a.index(20,3,len(a) #返回4
  1. count()获得指定元素在列表中出现的次数
a = [10,20,30,10,20,30]
a.count(20) 		#返回2
  1. len()返回列表的长度
a = [10,20,30,10,20,30]
b = len(a) 			# b=6 
  1. 成员资格的判断
    判断列表中是否存在指定的元素,一般使用in关键词。
a = [10,20,30,10,20,30]
b = 10 in a 		# b= True
c = 'sherry' in a 	# c = False

列表的切片slice操作

切片slice操作可以让我们快速提取子列表或者修改。标准格式:
列表[起始偏移量 start:终止偏移量 end [:步长 step]]
在这里插入图片描述在这里插入图片描述
切片操作,起始偏移量和终止偏移量不在[0,len-1]范围也不会报错。
起始偏移量和终止偏移量要么同为正数,要么同为负数。

列表排序

修改原列表,不建新列表的排序
· sort():默认升序排列
· sort(reverse=True):降序排列

import random
a = list(range(10))[::-1] # a = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
a.sort() # 升序排序 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a.sort(reverse=True) #降序排列 a = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
random.shuffle(a) #打乱列表顺序

建新列表的排序
内置函数sorted()生成新的列表对象

a = list(range(10))[::-1] # a = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
b = sorted(a) # 升序排序 b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], a无变化
c = sorted(b,reverse=True) #降序排列 c = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], b无变化

reversed()返回迭代器
内置函数reversed()也支持进行逆序排列,不对原列表做任何修改,只是返回一个
逆序排列
迭代器对象

max()和min()函数返回列表中的最大值和最小值,sum()对数值型列表所有元素求和,对非数值型列表报错。

a = list(range(10)) # a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = max(a) # b = 9
c = min(a) # c = 0
d = sum(a) # d = 45

多维列表

二维列表

一维列表可以帮助我们存储一维、线性的数据。
二维列表可以帮助我们存储二维、表格的数据。例如:
在这里插入图片描述

a = [
		["高小一",18,30000,"北京"], 
		["高小二",19,20000,"上海"], 
		["高小一",20,10000,"深圳"],
	]
b = a[0] 	# b = ["高小一",18,30000,"北京"]
b = a[0]2] 	# b = 30000

内存结构图:
在这里插入图片描述

元组

列表属于可变序列,可以修改列表中的元素。元组属于不可变序列,不能修改元组中的元素,因此没有删除、修改、删除元组元素的相关方法。 列表和元组都可以包含任意对象。
因此只需学习元组的创建,和删除,以及元素中元素的访问和计数等。
元组支持如 下操作:
1.索引访问
2. 切片操作
3. 连接操作
4. 成员关系操作
5. 比较运算操作
6. 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。

元组的创建

  1. 通过()创建元组
    如果元组只有一个元素,则后面必须加逗号,因为解释会把例如(3)解释成整数3,把(‘abc’)解释成字符串’abc’。
a = (1,2,3,4)
a = (1,)
a = ('a',)
  1. 通过tuple()创建元组
b = tuple()
b = tuple('abc') 		# b = ('a','b','c')
b = tuple(range(5)) 	# b= (0,1,2,3,4)
b = tuple(['abc',2,3]) 	# b = ('abc',2,3)
  1. 生成器推导式创建元组
    从形式上看,生成器推导式与列表推导式类似,只是中括号换成了小括号。并且列表推导式直接生成列表对象,而生成器推导式生成的既不是列表也不是元组,而是一个生成器对象
    我们可以通过生成器对象,转化为列表或者元组,也可以使用生成器对象的__next__()方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象
s = (x*2 for x in range(5)) #s为生成器对象
b = tuple(s) # b = (0,2,4,6,8)
c = list(s)  # c = [] 已经迭代完了,需要重新创建该生成器对象
s = (x*2 for x in range(5)) #s为生成器对象
s.__next__() # 0
s.__next__() # 2
s.__next__() # 4
s.__next__() # 6
s.__next__() # 8
s.__next__() # 报错

总结:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。

元组元素的访问和计数

a = (1,2,3,4)
a[0] = 10 # 报错
b = a[0:3] # b = (1,2,3)

列表关于排序的方法 list.sorte()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象

a = (1,2,3,4)
b = sorted(a, reverse=True) # b = (4,3,2,1)

zip(列表 1,列表 2,…)将多个****列表对应位置的元素组合成为元组,并返回这个 zip 对象。

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
d = zip(a,b,c)  #zip对象
e = list(d) 	# e=[(1,2,3),(4,5,6),(7,8,9)]  原列表转换成了元组

元组总结
1.元组的核心特点是:不可变序列
2.元组的访问和处理速度比列表快
3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:47:28  更:2022-02-06 13:47:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:39:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码