List、浅拷贝、深拷贝、切片

一、List:是Python内置的数据类型列表--List,List是一种有序集合,可以随时删除和添加元素。

创建list直接用 []1 letters = ["a","b","c","d","e"]
2             0   1   2   3   4
3 print(letters[0])
4 a
5 print(letters[1])
6 b
7 #list中是通过索引来获取列表中的元素,索引是从0开始

如果说想要直接获取list的最后一个元素可以直接用-1的索引获取

1 >>> letters[-1]
2 ‘e‘
3 >>> letters[-2]
4 ‘d‘
5 >>> 

通过len()函数可以来获取列表中有多少个元素

>>> len(letters)
5
letters列表中有5个元素

List也是有相应的方法:

append():在List最后一位添加元素

>>> letters.append("F")
>>> print(letters)
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘F‘]

clear():清空List

>>> letters = ["a","b","c","d","e",]
>>> letters.clear()
>>> print(letters)[]

count(value):在列表中该元素的个数

>>> letters = ["a","b","c","d","e","e","e"]
>>> letters.count("e")
3

extend():扩展List,添加到该List的末尾

>>> letters = ["a","b","c","d","e"]
>>> numbers = [1,2,3,4,5]
>>> letters.extend(numbers)
>>> print(letters)
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, 1, 2, 3, 4, 5]

index():查找第一个出现的该元素在列表中的索引

>>> letters = ["a","b","c","d","e","e","e"]
>>> letters.index("e")
4

insert(index,p_object):在List中添加元素

>> letters = ["a","b","c","d","e"]
>>> letters.insert(1,"A")
>>> print(letters)
[‘a‘, ‘A‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]

pop(index = None):通过索引删除病返回List中的元素,如果没有输入参数则默认删除List最后一个元素

>>> letters.pop()
‘e‘
>>> letters.pop(3)
‘d‘
>>> print(letters)
[‘a‘, ‘b‘, ‘c‘]

remove(value):删除List中第一个出现的该元素

>>> letters = ["a","b","c","d","e","e","e"]
>>> letters.remove("e")
>>> print(letters)
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘e‘]

reverse():倒转List

>>> letters = ["a","b","c","d","e"]
>>> letters.reverse()
>>> print(letters)
[‘e‘, ‘d‘, ‘c‘, ‘b‘, ‘a‘]

sort():将List中的元素从小到大排序

","f","d","a","e","5","e","e","2","$#aa"]
>>> letters.sort()
>>> print(letters)
[‘$#aa‘, ‘2‘, ‘5‘, ‘6‘, ‘a‘, ‘d‘, ‘e‘, ‘e‘, ‘e‘, ‘f‘]
>>> 

二、浅拷贝,深拷贝

留坑:填

三、切片

关于切片,最初可能有些迷惑,但总结后思路就特别清晰:

[起始:结束:方向/间隔]

>>> letters = ["6","f","d","a","e","5","e","e","2","$#aa",2,4,2,4,5,66,7,33]
>>> letters[1:12:3] #表示从索引为1的元素开始取值,到索引12结束(不包括索引12的元素),间隔为3
[‘f‘, ‘e‘, ‘e‘, 2]

[起始:结束:方向/间隔] 注意:如果想倒序切片,需要把"方向/间隔"改成负数

>>> letters = ["6","f","d","a","e","5","e","e","2","$#aa",2,4,2,4,5,66,7,33]
>>> letters[12:1:-3]
[2, ‘$#aa‘, ‘e‘, ‘a‘]
时间: 2024-10-23 19:45:01

List、浅拷贝、深拷贝、切片的相关文章

JS中有关对象的继承以及实例化、浅拷贝深拷贝的奥秘

一.属性的归属问题 JS对象中定义的属性和方法如果不是挂在原型链上的方法和属性(直接通过如类似x的方式进行定义)都只是在该对象上,对原型链上的没有影响.对于所有实例共用的方法可直接定义在原型链上这样实例化的的时候就不用对每个实例定义该属性方法,所有的实例均具有该方的引用见最后的输出. function Myclass(){ this.x=" x in Myclass"; this.get=function(){}//每次实例化对象,每个对象的该方法都是独立的,是不相同的 } Mycla

$.extend()浅拷贝深拷贝

参考网址:http://bijian1013.iteye.com/blog/2255037 jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象. 注意:1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略.此时,target就是jQuery对象本身.通过这种方式,我们可以为全局对象jQuery添加新的函数.2. 如果多个对象具有相同的属性,则后者会覆盖前者的属性值.   1 <!DOCTYPE html> 2 <html lang=&

Java求幂集与List的浅拷贝深拷贝问题

求幂集 使用回溯法,主要看集合里每一个元素在与不在链表中,在与不在都会创建一个新的解: import java.util.ArrayList; import java.util.List; public class p78 { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> result=new ArrayList<List<Integer>>(

Python练习四-浅拷贝&amp;深拷贝

一.数字.字符串不论是浅拷贝.深拷贝都是指向一个地址. a = 1 b = "abc" print (id(a)) print (id(b)) a1 = a b1 = b print (id(a1),id(b1)) a2 = copy.copy(a) b2 = copy.copy(b) print (id(a2),id(b2)) a3 = copy.deepcopy(a) b3 = copy.deepcopy(b) print (id(a3),id(b3)) 二.列表.元组.字典的浅拷

python浅拷贝深拷贝

copy_list=list[:]  得到的是浅拷贝,即只能顶层拷贝,里面的嵌套不会复制一份. 深拷贝方法如下: import copy a = [0, [1, 2], 3] b = copy.deepcopy(a) a[0] = 8 a[1][1] = 9 int,float,long,str,tuple为不可变对象 list,set,dict为可变对象 不可变对象指的是值的不可变,所以它的每一次操作都会重建对象 打个比方: a=1 a=2 这里虽然看上去a的值可以改变,但其实是创建了一个新的

python之浅拷贝深拷贝

之前一直不明白python中的浅拷贝和深拷贝是个鸟意思,通过一段时间的学习,总算是明白了些,所以就写出来让自己加深点印象,并在与大家分享和交流! #浅拷贝命令 copy.copy(x) Return a shallow copy of x. 返回一个个浅拷贝 x #深拷贝命令 copy.deepcopy(x) Return a deep copy of x. 返回一个深拷贝 x 浅拷贝新创建一个对象并且插入到与之相关的对象或者引用者的身上. 深拷贝同样是创建一个新对象,但是是递归拷贝对象,并且插

Java原型模式之浅拷贝-深拷贝

一.是什么? 浅拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量仅仅复制引用,不复制引用的对象 深拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制 内部机制: (1)关于Object类的clone方法 默认实现为"浅拷贝",重写Object类中的clone方法.Java中全部类的父类都是Object类,Object类中有一个clone方法.作用是返回对象的一个拷贝,可是其作用域是protected类型的,一般的类无法调用,因此Prototype类

python学习笔记七:浅拷贝深拷贝

原理 浅拷贝 import copy b = copy.copy(a) demo: >>> a=[1,['a']] >>> b=a >>> c=copy.copy(a) >>> a [1, ['a']] >>> b [1, ['a']] >>> c [1, ['a']] >>> id(a) 140556196249680 >>> id(b) 14055619624

Python 浅拷贝 深拷贝 及引用机制

这礼拜碰到一些问题,然后意识到基础知识一段时间没巩固的话,还是有遗忘的部分,还是需要温习,这里做份笔记,记录一下 前续 先简单描述下碰到的题目,要求是写出2个print的结果 可以看到,a指向了一个列表list对象,在python中,这样的赋值语句,其实内部含义是指a指向这个list所在内存地址,可以看作类似指针的概念. 而b,注意,他是把a对象包裹进一个list,并且乘以5,所以b的样子应该是一个大list,里面元素都是a 而当a对象进行了append操作后,其实,隐含的意思是,内存中的这个l

关于js 浅拷贝 深拷贝 以及赋值操作。

最近同事又碰到关于深浅拷贝以及赋值的问题,今天我也研究一下记录一下,加深一下记忆. 举一个简单的例子: var people = { age:10, name:"小华", arr:[1,2,3] }; 做一个 赋值操作: var people2 = people; 然后做一个浅拷贝操作: var people3 = {}; for (var i in people){ people3[i] = people[i] }; 然后最后再做一个深拷贝操作: function deepClone