>백엔드 개발 >파이썬 튜토리얼 >Python 학습에서 리스트와 튜플의 사용에 대한 자세한 설명

Python 학습에서 리스트와 튜플의 사용에 대한 자세한 설명

WBOY
WBOY앞으로
2022-11-02 15:51:512120검색

이 기사에서는 Python에 대한 관련 지식을 제공합니다. 목록의 선언 구문, 목록 읽기, 목록 연산, 요소에 대한 기본 지식 및 튜플의 사용에 대한 자세한 설명을 주로 소개합니다. 운영 및 기타 내용이 모두에게 도움이 되기를 바랍니다.

【관련 추천: Python3 동영상 튜토리얼

목록 및 튜플 소개

Python 언어에서 가장 좋은 데이터 유형을 찾고 있다면 의심할 여지 없이 목록입니다. , 그런 다음 튜플을 선택합니다. 이 블로그에서는 튜플을 수정할 수 없는 목록으로 간주할 수 있으므로 선물으로 배워보세요.

List는 이전 문자열 유형의 많은 단점을 보완할 수 있는 매우 유연한 데이터 구조입니다.

정식 학습에 앞서 list와 tuple이라는 두 가지 영어 단어를 기억해야 합니다.

목록 학습의 핵심 포인트

목록 정의를 먼저 살펴보세요.

목록은 변수 시퀀스이며 모든 데이터 유형을 저장할 수 있는 컨테이너입니다. 대괄호([])를 사용합니다. 시작과 끝을 나타냅니다. 내부 요소는 영어 쉼표(, )로 구분됩니다. 각 요소는 프로젝트라고 할 수 있으며 각 요소에는 아래 첨자라고도 하는 인덱스가 있습니다. [])表示开始和结束,内部各元素使用英文逗号(,)分隔,每个元素都可称为项目,并且每个元素都有一个索引,也被称为下标。

列表的声明语法

声明一个列表,可以参考下述几种格式。

使用空中括号 [] 声明一个空列表

my_list = []
print(my_list)

声明包含一个元素的列表

my_list = [1]
print(my_list)

声明包含多个元素的列表

my_list = [1,2]
print(my_list)

声明包含多个不同数据类型元素的列表

my_list = [1,'a',True]
print(my_list)

声明一个列表中包含列表

my_list = [1,['a'],[True,1,1]]
print(my_list)

列表的读取

读取列表中最重要的概念是下标,也叫做位置或者索引。下标从 0 开始计数,即列表内第一项元素的索引是 0,例如下述代码,读取数字 2。

my_list = [1,2,3,4,5]
print(my_list[1]) # 数字2所在的下标为1

列表操作

列表是一个动态容器,其支持对其元素的增加,删除,修改,查询,合并等操作,用到的都是字典对象的方法,基本操作的方法名如下所示:

  • append():末尾追加元素;
  • extend():末尾追加列表,也可以理解为两个列表合并;
  • insert():在指定位置插入元素;
  • copy():列表复制;
  • clear():清空列表;
  • count():统计列表指定元素个数;
  • pop():删除并返回指定下标对应的元素;
  • remove():删除列表中指定元素;
  • index():获取指定元素的下标;
  • reverse():反转元素;
  • sort():对列表元素进行排序。

列表元素添加方法

从上述清单中,可以查看到列表追加元素,有两种办法可以实现,其一是使用 append() 方法,其二是使用 insert() 方法,示例代码如下所示:

my_list = [1,2,3,4,5]
my_list.append(888)
my_list.insert(1,666)
print(my_list)

对比一下上述两个方法的差异,可以看到 append() 仅能在里列表末尾追加元素,而 insert() 方法可以在任意位置插入元素,即 insert() 方法的第一个参数为索引,表示插入位置。

列表元素查找方法

在列表中查找某一元素,使用 index() 方法实现,该方法的语法格式如下所示:

my_list.index(value,[start[,stop]])

其中 my_list 是待查找目标列表,value 表示待查找的值,startstop 为可选参数,表示开始查找的索引值和结束查找的索引值,该方法当查找到元素后,会返回第一个找到的元素索引位置,例如下述代码,会返回 3

my_list = [1,2,3,4,5]
ret = my_list.index(4)
print(ret)

如果该方法没有在目标列表中找到元素,会报错,错误类型为 ValueError

index() 方法外,列表的读取其实也是元素查找方式,例如读取下标 2 的元素,代码如下:

my_list = [1,2,3,4,5]
ret = my_list[2]
print(ret)

还可以使用成员运算符 in,对列表进行判断,关于成员操作符的更多知识,后期总结运算符的时候,会详细说明。以下代码会返回 True,即表示数字 2 在列表中。

my_list = [1,2,3,4,5]
ret = 2 in my_list
print(ret)

在列表中还有一个重要知识点,即列表切片,学习该知识点需要先牢牢掌握列表按索引读取相关语法,切片的语法格式如下:

my_list = [1,2,3,4,5]
ret = my_list[1:3:2]
print(ret)

可以看到上述第二行代码,在原列表读取的规则之上,格式变为了 [1:3:2]

목록 선언 구문

목록을 선언하려면 다음 형식을 참조할 수 있습니다. 🎜🎜🎜빈 목록을 선언하려면 공기 괄호 []를 사용하세요🎜🎜
my_list[起始索引:结束索引:步长]
🎜🎜하나의 요소가 포함된 목록 선언🎜🎜
# 缺省结束索引,默认获取到列表结尾元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:]
print(ret) # 输出 [2, 3, 4, 5, 6, 7, 8, 9, 10]

# 缺少步长,默认按照索引+1解决,同时不包含结束索引代表的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:5]
print(ret) # 输出 [2, 3, 4, 5]

# 步长设置为2,表示索引每次+2
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:6:2]
print(ret) # 输出 [2, 4, 6]
🎜🎜여러 요소가 포함된 목록 선언🎜🎜
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
print(my_list)
🎜🎜다양한 데이터 유형의 여러 요소가 포함된 목록 선언 🎜🎜
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
my_list.clear() # 列表清空
print(my_list)
🎜🎜목록에 목록이 포함되어 있음을 선언하세요🎜🎜
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.pop()
print(my_list) # 删除最后一项
print(ret) # 返回被删除的元素

목록 읽기

🎜목록을 읽을 때 가장 중요한 개념은 위치 또는 인덱스라고도 불리는 아래 첨자입니다. 아래 첨자는 0부터 계산되기 시작합니다. 즉, 목록의 첫 번째 요소 인덱스는 0입니다. 예를 들어 다음 코드는 숫자 2를 읽습니다. 🎜
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.remove(5)
print(my_list)
print(ret)

목록 작업

🎜목록은 요소 추가, 삭제, 수정, 쿼리 및 병합과 같은 작업을 지원하는 동적 컨테이너입니다. 사용되는 모든 메서드는 사전 개체 메서드와 기본 작업 메서드입니다. 🎜
  • append(): 끝에 요소를 추가합니다.
  • extend(): 목록을 끝에 추가합니다. 끝, 또한 두 개의 목록을 병합하는 것으로 이해될 수 있습니다.
  • insert(): 지정된 위치에 요소를 삽입합니다. (): 목록 복사
  • clear(): 목록 지우기
  • count() 목록에서 지정된 요소 수를 계산합니다.
  • pop(): 지정된 첨자에 해당하는 요소를 삭제하고 🎜반환🎜합니다. >remove(): 목록에서 제거합니다. 요소를 지정합니다.
  • index(): 지정된 요소의 인덱스를 가져옵니다. reverse(): 요소를 반대로 합니다.
  • sort(): 목록 요소를 정렬합니다.
🎜🎜목록 요소 추가 방법🎜🎜🎜위 목록에서 목록에 요소를 추가하는 방법은 두 가지가 있음을 알 수 있습니다. 하나는 append() 메소드, 두 번째는 <code>insert() 메소드를 사용하는 것으로, 샘플 코드는 다음과 같습니다. 🎜
# 删除索引位置为5的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del(my_list[5])
print(my_list)


# 删除整个列表对象
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del my_list
print(my_list)
🎜위 두 메소드의 차이점을 비교해보면 append를 확인할 수 있습니다. () 목록 끝에 요소만 추가할 수 있으며, insert() 메서드는 임의 위치, 즉 insert의 첫 번째 매개변수에 요소를 삽입할 수 있습니다. () 메소드는 삽입 위치를 나타내는 인덱스입니다. 🎜🎜🎜목록 요소 검색 방법🎜🎜🎜목록에서 요소를 찾으려면 index() 메서드를 사용하세요. 이 메서드의 구문 형식은 다음과 같습니다. 🎜
my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list1.extend([666,777,888])
print(my_list1)
🎜where my_list 는 검색할 대상 목록이고, value는 검색할 값을 나타내며, startstop은 선택적 매개변수입니다. 검색을 시작할 인덱스 값과 검색이 끝나는 인덱스 값입니다. 요소가 발견되면 이 메서드는 처음 발견된 요소의 인덱스 위치를 반환합니다. 예를 들어 다음 코드는 3을 반환합니다. 코드>. 🎜<pre class="brush:py;">my_list1 = [1,2,3] my_list2 = [666,777,888] my_list = my_list1 + my_list2 print(my_list)</pre>🎜이 방법으로 대상 목록에서 요소를 찾지 못하면 <code>ValueError 오류 유형으로 오류가 보고됩니다. 🎜🎜index() 메서드 외에도 목록을 읽는 것은 실제로 요소 검색의 메서드입니다. 예를 들어 아래 첨자 2가 있는 요소를 읽으려면 코드는 다음과 같습니다. 🎜
my_list = [4,1,2,6,7,3,8,12,10]
my_list.sort()
print(my_list)
🎜You 목록을 판단하기 위해 멤버 연산자 in을 사용할 수도 있습니다. 멤버 연산자에 대한 자세한 내용은 나중에 연산자를 요약할 때 자세히 설명하겠습니다. 다음 코드는 True를 반환합니다. 이는 숫자 2가 목록에 있음을 의미합니다. 🎜
my_list.sort(key=None,reverse=False)
🎜리스트에는 또 다른 중요한 지식 포인트가 있는데, 바로 리스트 슬라이싱(list slicing)입니다. 이 지식 포인트를 배우기 위해서는 인덱스별로 리스트를 읽는 것과 관련된 구문을 확실하게 익혀야 합니다. 슬라이싱의 구문 형식은 다음과 같습니다.
my_list = [&#39;ABC&#39;,&#39;CDS&#39;,&#39;Juejin&#39;,&#39;YUE&#39;]
my_list.sort(key=str.lower)
print(my_list)
🎜코드 위의 두 번째 줄을 보면 원본 목록을 읽는 규칙에 따라 형식은 [1:3:2]가 되고 중국어 구문 설명은 다음과 같습니다. 🎜
my_list[起始索引:结束索引:步长]

使用切片的时候,英文冒号不能缺少,起始索引为必选项,结束索引和步长为可选项。

如果理解困难,最好的办法就是反复用代码校验。

# 缺省结束索引,默认获取到列表结尾元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:]
print(ret) # 输出 [2, 3, 4, 5, 6, 7, 8, 9, 10]

# 缺少步长,默认按照索引+1解决,同时不包含结束索引代表的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:5]
print(ret) # 输出 [2, 3, 4, 5]

# 步长设置为2,表示索引每次+2
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:6:2]
print(ret) # 输出 [2, 4, 6]

上述代码如何理解已经在注释中进行说明,重点要掌握的切片知识点整理如下:

一首打油诗送给大家~

切片不能丢冒号 结束步长可不要 默认索引都加一 左闭右开要牢记

列表元素的修改和删除

前文已经掌握了列表的读取,将读取到的元素重新赋值就是列表的修改,例如下述代码。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
print(my_list)

列表元素删除 在 Python 中,提出了多种列表元素删除的方式,本小节学习三个列表元素删除的方法,即 clear()pop()remove(),除此之外还可以使用 del() 函数对列表元素进行删除。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
my_list.clear() # 列表清空
print(my_list)

使用 pop() 方法删除列表元素,默认从尾部删除,并返回被删除的元素。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.pop()
print(my_list) # 删除最后一项
print(ret) # 返回被删除的元素

pop() 方法中可以传递一个 index 值,该值表示下标值,即删除指定位置的元素,与之对应的是 remove() 方法的参数,该值表示待删除的目标元素,例如在列表中删除元素 5,使用的代码如下:

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.remove(5)
print(my_list)
print(ret)

测试之后,可以发现 remove() 方法无返回值,并且该方法只删除第一个匹配到的元素,也就是当列表中有多个目标元素时,只有最先匹配到的元素被删除。

del() 函数可以删除列表中指定元素,也可以直接删除列表对象,代码如下:

# 删除索引位置为5的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del(my_list[5])
print(my_list)


# 删除整个列表对象
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del my_list
print(my_list)

列表元素合并

使用 extend() 方法可以将列表进行合并:

my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list1.extend([666,777,888])
print(my_list1)

注意 extend() 方法不会生成新的列表。

列表合并也可以使用加号(+) 实现,该语法会产生一个新的列表。

my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list = my_list1 + my_list2
print(my_list)

列表元素顺序变化

列表排序用到的方法是 sort(),该方法默认按照 ASCII 进行增序或者减序排列,测试代码如下所示:

my_list = [4,1,2,6,7,3,8,12,10]
my_list.sort()
print(my_list)

sort() 方法中也有 2 个参数,格式如下:

my_list.sort(key=None,reverse=False)

参数 key 为可选参数,可以传入一个函数名,该函数会作用与列表中的每一项元素,例如将列表中每一项元素都转换为小写字母。

my_list = [&#39;ABC&#39;,&#39;CDS&#39;,&#39;Juejin&#39;,&#39;YUE&#39;]
my_list.sort(key=str.lower)
print(my_list)

sort() 方法会对原列表进行排序,如果想生成一个新列表,可以使用 sorted() 函数,代码如下:

my_list = [&#39;ABC&#39;,&#39;CDS&#39;,&#39;Juejin&#39;,&#39;YUE&#39;]
ret = sorted(my_list)
print(ret)

除此之外,还可以使用 reverse() 方法。

my_list = [&#39;ABC&#39;,&#39;CDS&#39;,&#39;Juejin&#39;,&#39;YUE&#39;]
my_list.reverse()
print(my_list)

元组学习要点

元组定义与列表基本一致,只需要做好如下区分即可。

  • 元组不能对其包含的元素进行修改,即元组不可变;
  • 元组用小括号(())表示。

再次进行简单总结:

元组是不可变序列,也是可以包含任意数据类型的容器,用小括号(())表示,元素之间用逗号(,)分隔 。一定要注意的就是不可变序列,不可变的含义是不能对元组进行增加,修改,删除,位置变换等操作。

元组基本知识

声明一个元组

my_tuple = ()
print(my_tuple)
print(type(my_tuple))

声明一个只包含 1 个值的元组,要求必须带一个逗号,否则会按照整数处理。

my_tuple = (1,)
print(my_tuple)
print(type(my_tuple))

声明包含多个值的元组:

my_tuple = (1,2,3,4,5,6,[1])
print(my_tuple)
print(type(my_tuple))

元组的基本操作

由于元组对象的方法使用与列表一致,接下来仅对元组进行罗列。

  • count():统计元组中元素个数;
  • index():返回指定元素的下标。

其余可作用于元组的内置函数如下所示:

  • len():获取元组元素个数;
  • max():返回元组中最大值;
  • min():返回最小值;
  • tuple():将列表转换为元组;
  • type():返回对象类型;
  • del():删除整个元组对象,注意不能删除元组内元素;
  • sum():求和。

【相关推荐:Python3视频教程

위 내용은 Python 학습에서 리스트와 튜플의 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제