>  기사  >  백엔드 개발  >  파이썬에서 리스트, 튜플, 문자열은 어떤 시퀀스인가요?

파이썬에서 리스트, 튜플, 문자열은 어떤 시퀀스인가요?

青灯夜游
青灯夜游원래의
2020-08-29 16:20:4923141검색

리스트, 튜플, 문자열은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.