Python元组数据类型详解
2021/11/12 17:10:05
本文主要是介绍Python元组数据类型详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python元组数据类型详解
元组和列表相同,都是一组有序的数据的组合
元组中的元素一旦定义不可修改
元组定义
- 定义空元组 变量=(),或者 变量=tuple()
- 定义带元素元组 变量=(1,2,3)
- 简化定义 变量=1,2,3
- 注意:如果元组中只有一个元素时,元素后必须加, 变量=(1,)
元组的相关操作
由于元组是不可变类型,只能使用索引进行访问,不可以进行增删改
但元组也可以和列表相同,使用切片形式获取元素
# 元组的基本定义与操作 varint=1, vart=(1,) print(type(varint),type(vart)) # 元组的切片操作 vart=(1,2,3,4,5,6,5,6,7,4,3,2,) res=vart[:] print(res) res=vart[1:] print(res) print(vart[0:-1]) print(vart[0:]) print(vart[::-1]) #倒着输出 # 获取数组长度 print(len(vart)) # 统计元素出现的个数 print(vart.count(5)) # 获取元素在元组中的索引值 vart=['python','java','php','c','c++','vb','shell','php'] print(vart.index('php')) # 2 # 从指定位置开始查找 print(vart.index('php',3)) # 7 # 从指定位置查找到指定位置结束 print(vart.index('php',0,3)) # 2 #元组的拼接 var1=1,2,3 var2='a','b','c' print(var1+var2) # (1, 2, 3, 'a', 'b', 'c') #元组的复制 print(vart*2) # ['python', 'java', 'php', 'c', 'c++', 'vb', 'shell', 'php', 'python', 'java', 'php', 'c', 'c++', 'vb', 'shell', 'php']
元组推导式(生成器)
列表推导式返回了一个列表,元组推导式返回了一个生成器
生成器:
生成器是一个特殊的迭代器,生成器可以自定义,也可以用元组推导式定义
生成器是按照某种算法推算下一个数据或结果,只需要网内存中存储一个生成器,节约内存消耗,提升性能
语法:
里面是推导式,外面是()的结果是一个生成器
自定义生成器,还有yield关键字的函数就是生成器
#元组推导式(生成器) # 列表推导式 varlist=[1,2,3,4,5,56,7] newlist=[i*2 for i in varlist] print(newlist) # [2, 4, 6, 8, 10, 112, 14] # 元组推导式 返回生成器:genexpr vart=(1,2,3,4,5,6) newvart=(i*2 for i in vart) print(newvart) # <generator object <genexpr> at 0x0000022C6A3BE580> # 操作生成器 # 生成器是迭代器的一种,可以使用迭代器操作 # 使用next()函数操作 print(next(newvart)) # 2 print(next(newvart)) # 4 print(next(newvart)) # 6 # 使用list()函数操作 newvart=(i*2 for i in vart) print(list(newvart)) # 使用tuple()函数操作 newvart=(i*2 for i in vart) # [2, 4, 6, 8, 10, 12] print(tuple(newvart)) # (2, 4, 6, 8, 10, 12) # 使用for循环进行遍历 newvart=(i*2 for i in vart) for i in newvart: print(i)
yield关键字
yield类似于return
共同点:关键字执行后把结果返回不同点:
- return 会直接返回结果,并且结束当前函数的调用
- yield 会返回结果并记录当前代码执行的位置,再次调用时从记录的位置继续向下执行
# 定义普通函数 def func(): print('hello world') return 1 print('hello python') return 2 func() # 普通定义方法只会执行到return 1 无法再次向下运行代码 # 使用 yield定义生成器函数 def fun(): print('hello world') yield 1 print('hello python') yield 2 # 调用生成器函数,返回一个迭代器 res= fun() r1=next(res) # hello world print(r1) # 1 r2=next(res) # hello python print(r2) # 2 # 使用list函数调用生成器时,返回迭代器 res=(fun()) print(list(fun())) # [1, 2] # 练习斐波那契序列 # 普通方法 def feibo(num): a,b,i=0,1,0 while i < num: print(b, end=',') a,b=b,a+b i+=1 feibo(7) print('') # 使用生成器改写 def feibo(num): a,b,i=0,1,0 while i < num: yield b a,b=b,a+b i+=1 res=feibo(7) print(next(res))
这篇关于Python元组数据类型详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程