python序列

来源:互联网 发布:惯性参考系 知乎 编辑:程序博客网 时间:2024/05/11 04:39
list():
不带参数时:创建一个新列表.
带一个参数时:将一个可迭代类型转换成列表.
tuple():将一个可迭代类型转换成元组.
max():返回参数中的最大值,参数的类型必须相同
sum():求参数的总和,第二个参数为相加开始的下标
enumerate():
zip()函数:
列表的复制:
a = 【1,2】
b = a
这种做法其实并未真正生成一个新的列表,b只想的仍然是a所指向的对象,这样如果对a或b的元素进行修改,ab的值同时发生变化


>>> a=[1,[2]]
>>> b=a[:]
>>> b
[1, [2]]
>>> a[1].append(3)
>>> a
[1, [2, 3]]
>>> b
[1, [2, 3]]
但 这种方法只适用于简单列表,也就是列表中的元素都是基本类型,如果列表元素还存在列表的话,这种方法就不适用了。原因就是,象a[:]这种处理,只是将列 表元素的值生成一个新的列表,如果列表元素也是一个列表,如:a=[1,[2]],那么这种复制对于元素[2]的处理只是复制[2]的引用,而并未生成 [2]的一个新的列表复制。为了证明这一点,测试步骤如下:
复制代码代码如下:
可见,对a的修改影响到了b。如果解决这一问题,可以使用copy模块中的deepcopy函数。修改测试如下:
复制代码代码如下:
>>> import copy
>>> a=[1,[2]]
>>> b=copy.deepcopy(a)
>>> b
[1, [2]]
>>> a[1].append(3)
>>> a
[1, [2, 3]]
>>> b
[1, [2]]
原创粉丝点击