分享

python 入门(六)

 微笑如酒 2018-08-20

元组

列表用[]或者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)
1
2
3
4
5
6
7

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)


input-42-2334d95b2b71> in <module>()
----> 1 tuple2.pop


AttributeError: '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=[]##先建立一个空的list
for i in 'ABC':
    for j  in 'ABC':
        if i!=j:
            list1.append((i,j))
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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多