@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要快。
哦吼,讲到这里,欢迎大大们拍砖