习题解释 第四章
[]
创建了一个列表值,但是其没有任何的值,这是一个空的列表;- 代码表示为
spam[2] = 'hello';
- 代码演示过程为:
spam[int('33')/11] --> spam[33/11] --> spam[3] --> 'd'
spam[-1] = 'd'
;spam[-1] = 'c'
;- bacon.index(‘cat’)求值为1;
- bacon.append(99)使原始列表变为[3.14,‘cat’,11,‘cat’,True,99];
- bacon.remove(‘cat’)使原始列表变为[3.14,11,‘cat’,True];
- 列表连接的操作符为
+
,复制的操作符为*
; - append()方法将新值插入到列表的末尾 ,insert()方法可以在列表任意下标处插入一个值;
- del语句与remove()方法,前者删除已知位置下标的值,后者删除列表中已知值的第一次出现的位置的值;
- 列表和字符串(近似于单个文本字的列表)都是表示序列值的数据类型,都可以按下标取值、切片,用于for循环,用于len(),以及用于in 和not in操作符
- 元组输入时用圆括号,而不是方括号,元组像字符串一样,是不可变得(增,删,改),元组变量保存值本身,列表变量保存列表值的引用(指针)
- 需要输入一个逗号
(42,)
以区别带括号的数字和元组; - 分别使用**tuple()和list()**函数对列表和元组进行转换,tuple()和list()都能够用来将字符串转换为元组或者列表,str()反过来转换字符串为列表或者元组则不可以;
- 列表变量包含对列表值的引用(指针),类似于一个指向列表值的独一无二的ID(地址)地址,但不包括列表值本身。
- copy()用来复制像列表或字典这样的可变值,deepcopy()复制包含列表的列表的所有列表值
>>> import copy
>>> list = [['hello'],['world'],['welcome']]
>>> list1 = copy.copy(list)
>>> list2 = copy.deepcopy(list)
>>> list1
[['hello'], ['world'], ['welcome']]
>>> list2
[['hello'], ['world'], ['welcome']]
>>> list[1][0] = 'Mars' #更改list二级列表值
>>> list
[['hello'], ['Mars'], ['welcome']] #list发生变化
>>> list1
[['hello'], ['Mars'], ['welcome']] #list1发生变化
>>> list2
[['hello'], ['world'], ['welcome']] #list2不发生改变
>>>
更改并创建新的元组
tup1 = (1,2,3,4)
list2 = list(tup1)
list[list.index('1')] = 'hello'
tup2 = tuple(list2)
结果为:tup2 ('hello',2,3,4)