元组高级用法

举报
brucexiaogui 发表于 2022/08/23 23:25:19 2022/08/23
【摘要】 元组高级用法 1.概述 这篇文章总结元组使用过程中的一些技巧。 2.元组基本操作 2.1.创建和访问元组 元组是一个有序不可变的容器类型,元组也有两种定义方式,字面量表达式和tuple() 内置...

元组高级用法

1.概述

这篇文章总结元组使用过程中的一些技巧。

2.元组基本操作

2.1.创建和访问元组

元组是一个有序不可变的容器类型,元组也有两种定义方式,字面量表达式和tuple() 内置函数

# 字面量创建元组,定义元组的关键是逗号,因此括号可以删除。
number = (1, 2, 3)

# 使用内置函数tupler()创建元组

t = tuple('foo')

# 通过切片方式访问元组内容
t1 = t[0]
t2 = t[0:]
t3 = t[0:-1]
t4 = t[-1]
print(t1)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.2.函数返回多个结果就是返回元组

在python中函数可以一次返回多个结果,其实是通过返回一个元组类型实现的。

# 函数一次返回多个值
def get_rectangle():
    '''
    返回长方形的宽和高
    :return:
    '''
    width = 100
    height = 200
    return width, height

result = get_rectangle()
print(f'输出长方形的宽和高:{result}, 输出返回结果数据类型:{type(result)}')

# 将函数返回值一次赋值给多个变量时,其实就是对元祖做了一次解包操作
width, height  = get_rectangle()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.3.元组没有推导式但可以创建生成器

元组是没有推导式的,而是返回一个生成器对象。因此他是生成器推导式
不过生成器是一种可迭代类型,所以可以通过tuple内置函数创建元组。

# 元组没有推导式
result = (n * 100 for n in range(10) if n % 2 == 0)
print(result)
# 输出结果不是元组,而是生成器对象
<generator object <genexpr> at 0x10a259a10>

t = tuple(result)
print(f'生成器创建元组:{t}')
# 输出结果
生成器创建元组:(0, 200, 400, 600, 800)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.4.具名元组

元组常用来存放结构化数据,但只能通过数字来访问元组成员其实不是很方便,为了解决这个问题,引入了具名元组。
具名元组在保留普通元组的基础上,允许为元组的每个成员命名,这样就是通过名称而不是数字访问元组成员。

创建具名元组需要用到namedtuple()函数,它位于标准库的collections模块里,使用前需要先导入。

# 具名元组
from collections import namedtuple

# 初始化具名元组
rectangle = namedtuple('rectangle', 'width, height')

# 为元组赋值
rect = rectangle(100, 200)
print(f'通过名称访问元组成员,width:{rect.width}, height: {rect.height}')

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/126472905

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。