python中的列表操作
列表:(list)容器类型:某个对象包含对其它对象的引用,则将其称为容器。
列表可以包含任何种类的对象(数字、字串、甚至嵌套其他列表,可以嵌套元组)
内部包含:任意对象的有序集合,通过索引访问其中的元素,可变对象,支持异构(包含多种不同的元素),任意嵌套
支持在原处修改: 列表的可变表现为:其内部的每一个元素,存储在列表中不是对象本身,而是对象的引用,其修改其实是修改的引用,而不是真正的修改了内部的某个对象。
使用[]创建列表
>> list1 = ["This","is","a","pig"]
>> print list1
This
>> print list1
T
列表和元组并不真正存储数据而是存放的对象引用!
解释:
["this","is","a","pig"]
这里并不是存放了"this",而是在内存中找个了地方存放的"this",只是把"this"的存储的位置存放在这个列表当中。
---列表的异构:
In : list =
In : print list
---嵌套的列表:
In : list2 = [,['a','b']]
In : print list2
[, ['a', 'b']]
---列表的修改
In : list2 =
In : print list2
In : list2 = 888
In : print list2
---删除指定的元素
In : list2
Out:
In : del(list2)
In : print list2
---新增一个元素(append方法) 在最后指定附件元素
In : list2 =
In : print list2
In : list2.append(5)
In : print list2
能不能附加多个元素?附加一个列表进来
In : print list2
In : list3 = ['x','y','z']
In : list2.append(list3)
In : print list2
]
注意:这里是把这个列表当作一个元素附加进来的。
---extend 方法
extend list by appending elements from the iterable
通过附加迭代元素来扩展列表
In : list1 =
In : list2 = ['x','y','z']
In : list1.extend(list2)
In : print list1
是把两个列表合并在一起了
---index方法(返回字符,第一次出现的索引编号)
In : list1 =
In : list1.index(2)
Out: 1
--- insert 方法(在指定的元素前面添加元素)
In : list =
In : list.insert(2,'xyz')
In : print list
---pop方法(弹出列表中的元素,默认是最后一个元素,按照索引删除,而remove是按照值删除的)
In : list
Out:
In : list.pop()
Out: 4
In : list.pop()
Out: 3
In : list
Out:
----remove 方法 (删除列表中指定的元素,安装值来删除)
In : list =
In : list.remove(3)
In : print list
* 列表相加会有什么效果呢? ***
list1 + list2:合并两个列表,生产一个新列表,原列表不会改变
list1 * N :重复list1 N次,生产新列表
>> list1 =
>> list2 = ['x','y','z']
>> list1 + list2
----> 返回了新的列表
>> print list1
>> print list2
['x', 'y', 'z']
>> list1
>> list1 * 3
in 操作符:成员关系判断符
判断一个元素,是不是在一个列表当中,在返回true,否则返回false用法:item in container
not in也类似
>> list1
>> 2 in list1
True
>> 'x' in list1
False
在切片级别的修改替换的是元素
>> list1
>> list1
>> list1 = ['x','y','z']
>> list1
***** 列表的复制 ****
(1)轻度copy
>> list1 =
>> list2 = list1
>> list1.append(4)
>> print list1
>> print list2
为什么会出现这种情况?
因为它们指向了同一个内存对象,不是真正执行了复制
>>> 140325613007360
>>> 140325613007360
>>
(2)使用list[:] 方式复制列表
>> list1 =
>> list3 = list1[:]
>> print list3
>> list1.append(5)
>> print list1
>> print list3
>>> 140325612904744
>>> 140325613007648
(3)通过内置库copy复制列表
import copy
copy.deepcopy
Deep copy operation on arbitrary Python objects.
对任意Python对象进行深度复制操作。
>> list1
>> import copy
>> list1
>>> 140325612904744
>> list2 = copy.deepcopy(list1)
>> print list2
>>> 140325613030936
页:
[1]