리스트, 튜플, 문자열은 Python에서 순서가 지정된 시퀀스입니다. 목록은 변경 가능한 객체인 반면 튜플과 문자열은 변경할 수 없는 객체입니다. 시퀀스의 각 요소에는 위치 또는 인덱스인 숫자가 할당됩니다. 첫 번째 인덱스는 0, 두 번째 인덱스는 1 등입니다.
시퀀스는 Python에서 가장 기본적인 데이터 구조입니다. 시퀀스의 각 요소에는 숫자(위치 또는 인덱스)가 할당됩니다. 첫 번째 인덱스는 0, 두 번째 인덱스는 1 등입니다.
시퀀스에서 수행할 수 있는 작업에는 인덱싱, 슬라이싱, 추가, 곱하기, 멤버 확인 등이 있습니다. 또한 Python에는 시퀀스 길이를 결정하고 가장 큰 요소와 가장 작은 요소를 결정하는 내장 메서드가 있습니다.
리스트, 튜플 및 문자열은 Python에서 순서가 지정된 시퀀스입니다. 목록은 변경 가능한 개체인 반면 튜플과 문자열은 변경 불가능한 개체입니다.
List(목록)
목록은 0개 이상의 개체 참조를 포함하는 순서가 지정된 시퀀스이며 문자열 및 튜플과 동일한 샤딩 및 스트라이드 구문을 지원합니다. 문자열 및 튜플과 달리 목록은 변경 가능하므로 목록의 항목을 삭제 또는 교체할 수 있고 목록의 조각을 삽입, 교체 또는 삭제할 수 있습니다.
목록 데이터 유형은 list() 함수로 호출할 수 있습니다. 매개변수 없이 호출하면 목록 매개변수를 사용할 때 매개변수의 얕은 복사본이 반환됩니다. give 주어진 객체를 리스트로 변환합니다. 함수 값은 매개변수를 허용합니다. list() 함수를 사용하지 않고도 목록을 만들 수 있고, 빈 대괄호를 사용하여 빈 목록을 만들 수 있으며, 하나 이상의 항목을 포함하는 목록은 쉼표로 구분된 데이터 항목 시퀀스([]로 묶음)를 사용하여 만들 수 있습니다.
목록에서 제공하는 방법:
모든 반복 가능한(목록, 튜플 등) 데이터 유형은 시퀀스 분할 연산자(즉, * )를 사용하여 분할할 수 있습니다. 연산자 왼쪽에 두 개 이상의 변수를 할당하는 데 사용되는 경우(그 중 하나는 *로 시작됨) 데이터 항목은 해당 변수에 할당되고 나머지 모든 데이터 항목은 아래에 제공된 별표 변수에 할당됩니다. :
이렇게 시퀀스 분할 연산자를 사용할 때 *rest 표현식과 이와 유사한 표현식을 별표 표현식이라고 합니다.
Python에는 별표 매개변수라는 관련 개념도 있습니다.
과학적 연구에서는 목록의 데이터 항목에 대해 반복 처리를 수행합니다. 사용된 구문 형식은 L:의 항목에 대한 것입니다. 목록의 데이터 항목을 변경해야 하는 경우 일반적으로 사용되는 방법은 다음과 같습니다.
for i in range(len(L)): L[i] = process(L[i])
목록이 샤딩을 지원하므로 여러 경우에 샤딩이나 다음과 같은 일부 목록 방법을 사용하여 동일한 기능을 완료할 수 있습니다. List woods=['Cedar','Yew','Fir'], 다음 두 가지 방법으로 목록을 확장할 수 있습니다:
woods+=['Kauri','Larch'] | woods.extend(['Kauri','Larch'])
위의 두 가지 방법의 경우 결과는 목록 ['Cedar','Yew'입니다. ,'전나무','카우리','낙엽송'].
목록 끝에 단일 데이터 항목을 추가하려면 list.append() 메서드를 사용하세요. list.insert() 메서드를 사용하거나 길이가 0인 슬라이스에 할당하여 목록의 모든 인덱스 위치에 데이터 항목을 삽입할 수 있습니다. 예를 들어 목록 woods=['Cedar','Yew','Fir','Spruce']가 있으면 인덱스 위치 2(즉, 목록의 세 번째 항목)에 새 데이터 항목을 삽입할 수 있습니다. 다음 두 가지 방법을 구현할 수 있습니다.
woods[2:2] = ['Pine'] | woods.insert(2,'Pine')
위 두 가지 방법으로 얻은 결과는 ['Cedar','Yew','Pine','Fir','Spruce'] 목록입니다.
특정 인덱스를 지정하여 위치 개체에 값을 할당하면 목록의 단일 데이터 항목을 바꿀 수 있습니다(예: woods[2]='Redwood'). 반복 가능 항목을 샤드에 할당하면 전체 샤드를 교체할 수 있습니다(예: woods[1:3]=['Spruce','Sugi','Rimu']). 샤드 반복 가능 항목은 동일할 필요가 없습니다. 길이. 이러한 모든 경우에 샤드의 데이터 항목은 제거되고 반복 가능한 데이터 항목이 삽입됩니다. iterable에 교체할 조각보다 적은 수의 항목이 포함된 경우 이 작업을 수행하면 범주가 더 짧아지고 그렇지 않으면 목록이 됩니다. 다음 예:
복잡한 목록의 경우 for...in 루프를 사용하여 만들 수 있습니다. 예를 들어, 지정된 시간 범위 내에서 윤년 목록을 생성해야 하는 경우 다음을 사용할 수 있습니다. 다음 문:
leaps = [] for year in range(1900,1940): if (year%4 == 0 and year %100 !=0) or (year % 400 ==0): leaps.append(year)
두 가지 표현:
expression for item in iterable expression for item in iterable if condition
tuple
元组是个有序的序列,其中包含0个或多个对象引用。元组支持与字符串一样的分片与步距的语法,这使得从元组中提取数据项比较容易。元组也是固定的,不能替换或删除其中包含的任意数据项。如果需要修改有序序列,我们应该使用类别而非元组。如果要对元组进行修改,可以使用list()转换函数将其转换为列表,之后在产生的列表之上进行适当修改。
tuple数据类型可以作为一个函数进行调用,tuple()---不指定参数时将返回一个空元组,使用tuple作为参数时将返回该参数的浅拷贝,对其他任意参数,将尝试把给定的对象转换为tuple类型。该函数最多只能接受一个参数。元组也可以使用tuple()函数创建,空元组是使用空圆括号()创建的,包含一个或多个项的元组则可以使用逗号分隔进行创建。
元组只提供了两种方法:t.count(x),返回对象x在元组中出现的次数;t.index(x),返回对象在元组t中出现的最左边位置。
元组可以使用操作符+(连接)、*(赋值)与 [](分片),要可以使用in 与not in 来测试成员关系。
下面给出几个分片实例:
上面这些处理过程对字符串、列表以及人员其他序列类型都是一样的
要构成一个亿元组,逗号是必须的,这里red字符串地方我们必须同时使用逗号与圆括号。
1.1 命名的元组
命名的元组与普通元组一样,有相同的表现特征,其添加的功能就是可以根据名称引用元组中的项,就像根据索引位置一样,这一功能使我们可以创建数据项的聚集。
collections 模块提供了 namedtuple()函数,该函数用于创建自定义的元组数据类型,例如:
collections.namedtuple()的第一个参数是想要创建的自定义元组数据类型的名称,第二个参数是一个字符串,其中包含使用空格分割的名称,每个名称代表该元组数据类型的一项。该函数返回一个自定义的类(数据类型),用于创建命名的元组。因此,这一情况下,我们将sale与任何其他python类一样看待,并创建类型为sale的对象,如:
这里我们厂家了包含两个sale项的列表,也就是包含两个自定义元组。我们也可以使用索引位置来引用元组中的项----比如,第一个销售项的价格为sales[0][-1],但我们呢也可以使用名称进行引用,这样会更加清晰:
命名的元组提供的清晰与便利通常都是有用的,比如,下面另一个例子:
私有方法namedtuple._asdict()返回的是键-值对的映射,其中每个键都是元组元素的名称,值则是对应的值,我们使用映射拆分将映射转换为str.format()方法的键-值参数。
“{manufacturer} {model}”.format(**aircraft._asdict())
字符串
str,字符串在python中是有序序列,这意味着字符串在python中可以做很多操作,比如slice。不过有一点是字符串中某部分无法进行修改,因为是不可变对象。
字符串经常碰到的一个问题就是怎么把 字符串倒序输出。
这时候我们就可以把slice用到字符串中,编写一个倒序输出的函数如下:
def reverse(x): if not isinstance(x,basestring): raise TypeError ("bad type"); else: return x[::-1]
isinstance是用来判断参数是否是字符串,如果不是的话将会报错。
basestring是str和unicode的父类,可以用来分辨是不是字符串的类型。
推荐学习:Python视频教程
위 내용은 파이썬에서 리스트, 튜플, 문자열은 어떤 시퀀스인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!