Python基础

Python入门(六)

2018-09-08  本文已影响3人  一路向前_莫问前程_前程似锦
元组
列表用[]或者list函数,元组用()或者tuplue
元组是Python的另一种特色的数据类型
元组和列表是相似的可以存储不同类型的数据

但是!划重点:元组是不可改变的,创建后就不能做任何修改操作了,就是说不可以删除,增加,但是可以查找,取词等

创建元组
用逗号隔开的就是元组,但是为了美观和代码可读性,我们一般加小括号
a =1,2,3
type(a)
tuple
b=(4,5,6)
type(b)
tuple
c=1,2,3,4.5,[1,2]
c[4]
[1, 2]
特殊情况:

创建一个元素的元组时必须加逗号

cc=(1,)
ccc=1,
cccc=(1)
type(cc)
tuple
type(ccc)
tuple
type(cccc)
int
注意:上面的只加了小括号的,创建出来的是int整型,而在加了逗号基础上,是否使用小括号都是ok的,都创建的是元组
元组的基本操作 和列表类似,元组也有很多基本操作:
1.索引
2.切片
3.连接
4.复制
5.对内部元素循环
6.查找元组中是否有某元素
7.删除元组
8.返回元组中最大值和最小值
tuple2=1,2,3,4,5,6,7
tuple2[1]
2
tuple2
[1:6:2]
(2, 4, 6)
tuple2
[6:2:-1]
(7, 6, 5, 4)
tuple2[:]
(1, 2, 3, 4, 5, 6, 7)
tuple2[::]
(1, 2, 3, 4, 5, 6, 7)
tuple2[::-1]
(7, 6, 5, 4, 3, 2, 1)
tuple2[::-2]
(7, 5, 3, 1)
max(tuple2)
7
min(tuple2)
1
tuple2[-2]
6
tuple2+ccc
(1, 2, 3, 4, 5, 6, 7, 1)
tuple2*2
(1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7)
for i in tuple2:    
print(i)
1234567
2 in tuple2 ##判断元素是否存在
True
len(tuple2)
7
tuple2.index(2) ##返回索引值
1
tuple2[1]
2
除此之外,在列表可行的
pop()
append()
extend()
remove()
index()
都在元组中不可用
tuple2.pop---------------------------------------------------------------------------
AttributeError                           
 Traceback (most recent call last)<ipython-input-42-2334d95b2b71>
 in <module>()----> 1 tuple2.popAttributeError: 'tuple' object has no attribute 'pop'
元组和列表相互转化
list1=[1,2,3]
tuple11=tuple(list1)
type(tuple11)
tuple
list22=list(tuple2)
type(list22)
list
没错,只要在原来的列表外套一层tuple()就可以转为元组
在原来的元组外面套一层list()就可以转为列表还记得列表生成式么?
这次,把元组也加进来
列表生成式
[m+n for m in "ABC" for n in "ABC"]
['AA', 'AB', 'AC', 'BA', 'BB', 'BC', 'CA', 'CB', 'CC']
[(m,n) for m in "ABC" for n in "ABC"] ##加个元组符号
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
[[m,n] for m in "ABC" for n in "ABC"] ##加个列表符号
[['A', 'A'], ['A', 'B'], ['A', 'C'], ['B', 'A'], ['B', 'B'], ['B', 'C'], ['C', 'A'], ['C', 'B'], ['C', 'C']]
[(m,n) for m in "ABC" for n in "ABC" if m!=n] ##加个元组符号
[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
[[m,n] for m in "ABC" for n in "ABC" if m!=n] ##加个列表符号
[['A', 'B'], ['A', 'C'], ['B', 'A'], ['B', 'C'], ['C', 'A'], ['C', 'B']]
这样就ok了,再一次体现出列表生成式的强大
回头想想
如果我们用一般循环,怎么写?
list1=[]##先建立一个空的
for i in "ABC":
for j  in "ABC":
 if i!=j:
list1.append((i,j))
list1
list1[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
思路是,先创建一个空列表,然后双层循环,判断两个字符串中取的元素是否相等,不相等则将其组成元组放入列表中
元组解包
tuple1=(1,2,34,5) #元组打包
a,b,c,d=tuple1 
#元组解包
print(a,b,c,d)
1 2 34 5
上一篇 下一篇

猜你喜欢

热点阅读