|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.
2. 关于内置方法index,help里提到的是返回第一索引值,如该值不存在,则提示数值错误(return first index of value. Raises ValueError if the value is not present.) 没搞懂这意思,自己用了下,还是看不懂~~求解。。
3. extend 和append的内置方法,help说append是输入数据,而extend则是输入迭代器(iterable),有点不太懂,这两个有什么区别? 我怎么感觉是一样的,至多的区别就是extend强大些,可以在末端扩展列表,而append只能一次在末端增加一个元素。。
4. list.copy()这个内置方法有什么用途?复制一个出来,后面如果改变了这个列表,原先复制的不照样改变。这个不是可以用另外一个列表=原列表,不是更好用?
extend方法扩展出来的列表是一维列表:
示例一:
- >>> a = [1,2,3,4,5]
- >>> b = a.extend([6,7,8,9])
- >>> a
- [1, 2, 3, 4, 5, 6, 7, 8, 9]
- >>>
复制代码
而用append方法也可以扩展,但是是多维列表:
示例二:
- >>> a = [1,2,3,4,5]
- >>> a.append([6,7,8,9])
- >>> a
- [1, 2, 3, 4, 5, [6, 7, 8, 9]]
- >>>
复制代码
区别就是,同样都是1~9组成的列表,用extend扩展得到的是有9个元素的列表;而用append方法得到的是只有6个元素的列表,索引值5对应的元素本身就是另一个列表。
正是有了这样的区别,所以,你在用copy()方法对一维列表进行拷贝的时候,得到一个全新的列表,两个列表位于内存的不同位置;
但是你用copy()方法对示例二的多维列表进行拷贝时也会得到一个全新的列表,但是他们只有成员“1,2,3,4,5”是位于内存的不同位置,而第6个成员[6,7,8,9]还是引用自源列表,所以,你对其任意一个元素进行修改都会影响另一个列表。这就是python的浅度拷贝,他还有一个深度拷贝方法deepcopy()用这个方法就能保证列表的所有成员都保存与内存的不同位置,从而不会相互影响。
|
|