PYTHON3 一些用法之tuple

@PYTHON3 一些用法之 Tuple

TUPLE 开始我很纠结,它既没有dict/set 那么快,也没有list那么灵活,那它究竟用来干嘛

在此之前我们先看看范例

除了手动的变量,tuple自动生成序列,list不行。以下输出list都是可以的

a=1,2,3,4,5,6
tuple(a)
print(tuple[0])
print(tuple)
print(tuple[3:max(tuple)])

不用管类型,怎么乱扔进去它怎么合法你喜欢扔int+str+list进去它都不会说难吃(废话),活脱脱就是个不挑食的孩子.list的话只会变成list[0]

j=[1,2,3,4,5,6]
a='a',1,3,j
tuple(a)
print(tuple)
print(tuple[3])

可以用变量来获取地址(废话),list 也行

a=1,'a',3,4
tuple=(a)
print('a' in tuple)
print(tuple.count('a'))
print(tuple.index('a'))
if 'a' in tuple:
	print('get')

支持 +和*多个tuple,list也行

tuplec=tuplea+tupleb
a=1,2,3
b=4,5,6
tuple=(a)+(b)
tuple=(a)*3

tuple 的值是不能一个个改的,除非全部替换吧,list可以一个个改

tuplea=tupleb
a=1,2,3,[1,2,3]
tuple=(a)
b=4,5,6,['a','b','c']
tuple=(b)
#tuple里面的数组是无敌的,直接替换类型都可以

用完之后,tuple还在怎么办,拿去宰了,list 也行,但是它有push/pop

del tuple

额,这教程都有,问题来了,以上都是手动把变量加入tuple的,这样都很舒服,但是遇到个小问题,从文件里面获取文本会不会也分的出来呢,结果…

"""
a.txt
---------------------------------
1,2,3,4,5
...........
-----------------------------------
"""
f=open('a.txt',r)
fr=f.readline()
for i in fr:
	tuple=(i)
	print(tuple[2])#输出','.....我

为啥呢,它把文本里每个字节当成一个char,于是’,'就变成tupple[2]了
解决这个问题,最终解决办法

def tuplenipple(soft):
	f=open("list.txt","r")
    
    fr=f.readlines()
    
    for i in fr:
        i=i.replace('\n','').strip()#最后一行可能会有'\n'
        ar=i.split(',')
        ry=ar[4:-1]
        tuple=(ar[0],ar[1],ar[2],ar[3],ry)
        #i,j,k=ar[1:3]
        #tuple=(i,j,k,ry)
        print(tuple)    

tuple 可以这样玩,改天解释下生成器和迭代器

j=[1,2,3,4,5]
print([int(i) for i in j])
tuple=(1,2,3,4,5)
print([i for in in tuple])

再玩玩tuple

a='a'
b=1
c=2
d=[1,2,3,4,5]
def dddd(b,c):
	return sum(b,c)
e=dddd(b,c)
tuple=(a,b,c,d,e)
def abc(tuple):
	.............................

它既然乱七八糟的东西扔给它,它都是接受的话,说不定在某个场合可以节省点代码吧。。。。。。。。

tuple创建和查询比list快,因为只能替换,所以你只要把全部的序列替换一下,依然比list要快。

哦吼,讲到这里,欢迎大大们拍砖

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值