python元组用法_python基础教程之元组操作使用详解

t = () #空元组

t =(1,) #单个元素元组,注意逗号必须

t =(1,2,3)

1 in t #判断

2 not in t

#其他同序列基本操作:分片,索引

print t[0]

print t[-1]

print t[:2]

#不会对原来元组造成影响

print t+(4,5) #返回新元组(1,2,3,4,5)

print t * 2 #(1,2,3,1,2,3)

t.index(1)

t.count(1)

#列表元组转换

l = [1,2,3]

lt = tuple(l)

tl = list(lt)

lt_sorted = sorted(l) #对元组进行排序,返回是列表

#字符串转元组(得到字符元组序列)

print tuple('hello) #('h','e','l','l','o')

tuple没有append/extend/remove/pop等增删改操作tuple没有find

查看帮助

代码如下:

help(tuple)

用途

1.赋值

代码如下:

t = 1,2,3 #等价 t = (1, 2, 3)

x, y, z = t #序列拆封,要求左侧变量数目和右侧序列长度相等

2.函数多个返回值

代码如下:

def test():

return (1,2)

x, y = test()

3.传参[强制不改变原始序列]

代码如下:

def print_list(l):

t = tuple(l) #或者t = l[:]

dosomething()

4.字符串格式化

代码如下:

print '%s is %s years old' % ('tom', 20)

5.作为字典的key

优点

1.性能

tuple比列表操作速度快

若需要定义一个常量集,或者是只读序列,唯一的操作是不断遍历之,使用tuple代替list

代码如下:

>>> a = tuple(range(1000))

>>> b = range(1000)

>>> def test_t():

... for i in a:

... pass

...

>>> def test_l():

... for i in b:

... pass

...

>>> from timeit import Timer

>>> at = Timer("test_t()", "from __main__ import test_t")

>>> bt = Timer("test_l()", "from __main__ import test_l")

简单测试

代码如下:

>>> at.repeat(3, 100000)

[1.526214838027954, 1.5191287994384766, 1.5181210041046143]

>>> bt.repeat(3, 100000)

[1.5545141696929932, 1.557785987854004, 1.5511009693145752]

2.不可变性

对不需要的数据进行“写保护”,使代码更加安全

不可变性,若在程序中以列表形式传递对象集合,可能在任何地方被改变,使用元组,则不能

不可变性只适用于元组本身顶层而非其内容,例如元组内部的列表可以修改

本站所有资源全部来源于网络,若本站发布的内容侵害到您的隐私或者利益,请联系我们删除!

合作方式

Copyright © 2004-2018 https://www.gxlcms.com/. All Rights Reserved.

豫ICP备19030742号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值