데이터 형식 - 목록 (리스트)
내용 :
목록에 대한지도
한 눈에, 마음지도에 우선
당신이 무슨 뜻 이죠 내 속기를 이해하지 않는 경우에 그림, 당신은 플러그인 할 수 있습니다 자세한 내용은.
![列表知识点脑图](https://imgkr.cn-bj.ufileos.com/0fe57684-e5c3-4419-adfa-61cd48f5e3b9.png)
목록은 무엇입니까
목록 배열의 요소의 무리의 요약이며 JS 동일한 보인다.
그것은 데이터의 유형 : 复杂数据类型
- - 각종 데이터 형식의 컬렉션
우리는 일반적으로 루프 + 여러 요소를 탐색 할 수있는 방법의 목록을 사용합니다. 학습하는 것이 중요합니다.
긴 톱질의 목록
구문
# 伪代码
列表变量名 = [ 元素1, 元素2, ...后边可以有多个无数个元素 ]
샘플 코드
# 记好这段代码,下边很多示例会用到
myName = ['小石头', 'xing.org1^', 181, True]
포맷 기능
-
목록의 이름을 내 "MyName로"의 예에서와 같이, 내 사용자 정의입니다. -
등호 변수에 할당 한 값을, 우측이리스트이다. -
포장 괄호 안에 필요한 요소의 목록 -
괄호 N 소자들 래핑 될 수있다 -
복수의 요소 사이의 쉼표로 구분 -
목록의 각 요소의 종류는 모든 값이 될 수 있습니다
정의 목록
목록을 정의
myName = ['小石头', 'xing.org1^', 181, True]
작업 목록 - 단일 추출 : 오프셋
오프셋 무엇입니까
오프셋 각 요소는 무한대에 0부터 넘버링 왼쪽 첫 번째 요소에서 시작하여 번호가된다 (도 첨자라고도 함).
나는 호출하는 데 사용 "인덱스를."
실시 예에서, 오프셋은 0이다.
(검색 위치로 이해) 인덱스에, 우리는 오프셋에 의해 요소의 목록을 얻을 필요가있다.
추출 오프셋 예
print(myName[0]) # 得到“小石头”
오프셋 값의 크기
오프셋 값 이하인 "리스트의 길이 -1"인 경우, 우리는 오프셋과 요소의 목록을 획득, 우리가 원하는 요소의 목록을 반환한다.
print(myName[0]) # 得到“小石头”
그러나, 오프셋보다 큰 경우 "목록 길이 -1"에 대하여 설명한다 IndexError: list index out of range
.
print(myName[4]) # 偏移量超出——IndexError: list index out of range
효과 다음과 같다 :
![IndexError错误](https://imgkr.cn-bj.ufileos.com/54171733-24cd-47c8-b582-275e19863459.png)
오프셋 추출 결과
결과리스트 내의 요소이며, 그 소자로부터 추출 된 데이터의 종류에 따라서는 어떤 타입이다.
작업 목록 - 이상 추출물 : 조각
提取列表中的一个甚至多个元素用切片。具体切片是啥,见下边。
切片简介
写法上就是一个英文冒号,有时候左右会有数字,数字表示偏移量。
用冒号来截取列表元素的操作叫作切片。
切片示例
print(myName[:]) # ['小石头', 'xing.org1^', 181, True]
print(myName[2:]) # [181, True]
print(myName[:2]) # ['小石头', 'xing.org1^']
print(myName[1:3]) # [ 'xing.org1^', 181]
切片作用
是将列表中的一个或多个元素选中。选出来的可以是一个片段里的元素,所以会叫“切片”。
冒号
搭配上列表名
和中括号
,就能将元素提取出来。
切片选中规则
1、冒号左边为空没有数字的话,就从列表的第一个元素开始截取,即偏移量从0开始取。
2、冒号右边为空没有数字的话,就一直取到列表的最后一个元素。
3、对于左边的数字,切片时是包含关系。
4、而对于右边的数字,切片时不会包括,会切到右边数字的前一个。当然,如果右边没有数字,会切到最后一个。 比如说,你想切出来下标(偏移量)为2的元素,那么右边的数字就应该填3。因为他不会切3,而是切到3的前一个。
切片提取的结果
提取的结果是一个列表。可以理解为拷贝了list中的一段出来,然后放到了一个新的列表里。
列表操作 - 增加:append()
向列表中增加一个元素用append,append是一个函数。用法使用列表调用即可。如下:
# 伪代码
列表变量名.append(参数)
append参数
1、参数类型:不限。可以是字符串、数字这样的单个元素,也可以是列表、字典这样的集合元素。
2、参数个数:一个,且必须填一个。如果多填或不填都会报TypeError
错误。
myName.append() # 报错TypeError,必须要一个参数
# 报错如下
# myName.append()
# TypeError: append() takes exactly one argument (0 given)
append作用
append会把参数追加到列表的末尾
。
增加内容后,列表的长度就会加一,增加的元素就会放在列表的末尾位置。
myName.append('')
print(myName) # ['小石头', 'xing.org1^', 181, True, '']
一个空串被追加到了列表myName的末尾,成为最后一个元素。
列表操作 - 删除:del()
del参数
参数个数:可1个,也可多个。
删除单个:偏移量
写法如下
del(myName[3]) # 删除掉True
填写你要删除元素所在列表内的偏移量到中括号中。用列表名[偏移量]的方式获取这个元素,然后当作参数传到del函数内当作参数即可将该元素从列表中删除。
上例中,偏移量3代表myName中的第四个元素“True”,用中括号+偏移量的方式提取出来后,再用del删除了。此时再打印myName发现“True”不在了。
隔段删除(多个元素):偏移量
发现了个有趣的例子,如下:
myName.append('')
print(myName)
del(myName[4])
print(myName)
del(myName[1],myName[2])
print(myName)
三个打印结果分别如下:
“['小石头', 'xing.org1^', 181, True, '']
”
“['小石头', 'xing.org1^', 181, True]
”
“['小石头', 181]
”
第一个和第二个的打印,应该没有问题,myName.append('')
往list后边增加了一个,空串成为偏移量为4所对应的元素。然后又del(myName[4])
删除了第四个元素,所以打印第二行的内容和原来没增加前的myName又一样了。
但是第二个del我写的是del(myName[1],myName[2])
,填写了两个参数,我希望删除“xing.org1^”和“181”这俩。
结果发现,删除的是“xing.org1^”和“True”。
我猜测它是先从“['小石头', 'xing.org1^', 181, True]”中删除第1个即“xing.org1^”。
之后列表变成“['小石头', 181, True]”,此时他再删除第2个,也就是“True”。
最后剩下了我们看到的打印结果:“['小石头', 181]”。
看来我们即使一次性向del中传递多个参数,他也是一个一个执行的。并且后一个参数删除是在前一个参数删除执行结果的基础上再做的工作。
删除片段(多个元素):切片
切片选中规则见上。
切片删除同偏移量一个原理。切片选中的片段被当作参数传递到del中,都会被删除。
所以直接看三个示例如下:
del(myName[:2]) # 偏移量0、1选中,删除掉 小石头、xing.org1^。myName剩下[181,True]
del(myName([2:])) # 偏移量2、3选中,删除掉 181、True。myName剩下[小石头,xing.org1^]
del(myName([1:3])) # 偏移量1、2选中,删除掉xing.org1^、181。myName剩下[小石头,True]
删除整个:切片
用切片删除所有选中元素
del(myName[:]) # myName成空list了。打印myName得到 []
删除整个:变量名
del参数为变量名,则删除整个list列表。
del(myName) # myName就不存在了,再访问报“未定义”的错
⚠️myName被删除后,就不存在了,再访问就会报“未定义”的错。
以上,就是关于列表的一些知识点,不够完善我今后继续补充,希望对看到的你我有点帮助。