鱼C论坛

 找回密码
 立即注册

013元组:戴上了枷锁的列表

已有 132 次阅读2018-3-30 22:07 |个人分类:python笔记

013元组:戴上了枷锁的列表

1. 元组可以看做是封闭的列表,一旦定义了元组,里面的元素就是不可改变的,不能排序。而列表像是一个大仓库,可以任意修改里面的元素,可以添加、修改、删除等。

2. 列表中的count()index()元组可以用,使用方法和列表相同,其他涉及到修改表内内容的都不能用。

3. Python3没有“元组推导式”

4. 创建列表用的是[];创建元组大多数时候用的是()

a) >>> tuple1 = (1, 2, 3, 4, 5, 6, 7, 8)

b) >>> tuple1

c) (1, 2, 3, 4, 5, 6, 7, 8)

d) >>> tuple1[2]

e) 3

f) >>> tuple1[5:]

g) (6, 7, 8)

h) >>> tuple1[:5]

i) (1, 2, 3, 4, 5)

j) >>> tuple2 = tuple1[:]

k) >>> tuple2

l) (1, 2, 3, 4, 5, 6, 7, 8)

m) >>> tuple1[1] = 3 #元组是不能修改的,这样会报错

5. 元组的标志符号是什么呢?(就像一说到列表我们就会想到[]一样

a) >>> temp = (1)

b) >>> temp

c) 1

d) >>> type(temp)

e) <class 'int'>

f) >>> temp2 = 2, 3, 4

g) >>> type(temp2)

h) <class 'tuple'> #由此可见()并不是元组的标志符号,逗号才是关键

i) 看看逗号的决定性作用

i. >>> temp

ii. (1,)

iii. >>> 8 * (8)

iv. 64

v. >>> 8 * (8,)

vi. (8, 8, 8, 8, 8, 8, 8, 8)

j) 如果想要创建一个只有1个元素的元组,就如上想要创建一个只有1的元组(上面输出为整型)?

i. >>> type(temp)

ii. <class 'tuple'>

iii. >>> temp2 = 1,

iv. >>> type(temp2)

v. <class 'tuple'>

vi. >>> temp2

vii. (1,)

viii. >>> temp

ix. (1,)   #只要打上逗号

k) 如何创建空的元组?

i. >>> temp = []

ii. >>> type(temp)

iii. <class 'list'>

iv. >>> temp = ()

v. >>> type(temp)

vi. <class 'tuple'> 

vii. >>> temp

viii. ()  #确实只打一个()就创建了一个空的元组

6. 如何更新和删除一个元组(类似于字符串的修改)

a) >>> temp = ('小甲鱼', '黑夜', '迷途', '小布丁')

b) >>> temp = temp[:2] + ('怡静',) + temp[2:]

c) >>> temp

d) ('小甲鱼', '黑夜', '怡静', '迷途', '小布丁')  #这个做法实际上是先将原来的元组拆成两个元组,拼接第三个元组后重新贴上temp的标签,覆盖原来的元组,原来的元组其实还在,只是现在没有标签指向他,之后就会被python回收

e) >>> temp = temp[:2] + ('怡静') + temp[2:]

f) Traceback (most recent call last):

g)   File "<pyshell#32>", line 1, in <module>

h)     temp = temp[:2] + ('怡静') + temp[2:]  #没有逗号认为是字符串无法拼接!

i) TypeError: can only concatenate tuple (not "str") to tuple

j) 元组单独删除一个元素只能用以上切片的方法 #想要拼接元组的时候逗号和小括号都不能少!

k) 要删除整个元组可以用del语句,不过如果没有标签或者标签指向0,系统会隔一段时间自动删除

7. 关系操作符</>/>=/<=;逻辑操作符;成员操作符in/not in都可以作用在元组上

8. 什么情况下我们需要元组而不是列表?

a) 当我们希望内容不被轻易改写的时候,我们使用元组;

b) 当我们需要频繁修改数据,我们使用列表。

9. X, y, z = 1, 2, 3 请问x, y, z是元组吗?

a) 所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组。

b) >>> x, y, z = 1, 2, 3

c) >>> type(x)

d) <class 'int'>

e) >>> h = x, y, z

f) >>> type(h)

g) <class 'tuple'>

MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-7 01:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部