파이썬 - 튜플

(1) 튜플을 처음 접하기

Python의 튜플은 튜플의 요소를 수정할 수 없다는 점을 제외하면 목록과 유사합니다. 튜플에는 괄호를 사용하고 목록에는 대괄호를 사용하십시오. 목록은 변경 가능한 시퀀스이며 목록의 요소는 임의로 수정할 수 있습니다. 튜플은 변경할 수 없는 시퀀스이며 튜플의 요소는 수정할 수 없습니다.

       따라서 튜플에는 요소 추가, 요소 수정 또는 요소 삭제를 위한 메서드가 없습니다. 튜플 생성 및 삭제, 요소 액세스 및 계산만 배우면 됩니다. 튜플은 다음 작업을 지원합니다.

(2) 튜플 생성

()         를 통해 튜플을 생성합니다 .

괄호는 생략 가능합니다. a = (10,20,30) 또는 a = 10,20,30

        튜플에 요소가 하나만 있는 경우 뒤에 쉼표가 와야 합니다. 이는 인터프리터가 (1)을 정수 1 로 해석 하고 (1,)을 튜플로 해석하기 때문입니다. 예를 들어 a = 10은 튜플을 의미하고 a = 10은 정수 10을 의미합니다.
 특정 코드:
a = (10)
print(type(a))#<class 'int'>
a = (10,)    #或者 a = 1,
print(type(a))#<class 'tuple'>
 

tuple()을   통해 튜플(반복 가능한 객체) 생성 

a = tuple() #创建一个空元组对象
b = tuple("abc")
c = tuple(range(3))
d = tuple([2,3,4])
요약하다:
  • tuple()은 튜플을 생성하기 위해 목록, 문자열, 기타 시퀀스 유형, 반복자 등을 수신할 수 있습니다. 

  •   list()는 튜플, 문자열, 기타 시퀀스 유형, 반복자 등을 수신하여 목록을 생성할 수 있습니다.

(3) 요소 액세스 및 튜플 계산

튜플의 요소는 수정할 수 없습니다.

 

요소 액세스, index() , count() , 슬라이싱 및 튜플의 기타 작업은 목록과 동일합니다.

a = (20,10,30,9,8)
print(a[1])#10
print(a[1:3])#(10, 30)
print(a[:4])#(20, 10, 30, 9)
    목록의 list.sorted() 메서드 는 원래 목록 개체를 수정하는 것이며 튜플에는 이 메서드가 없습니다. 튜플을 정렬하려면 내장 함수 sorted(tupleObj)만 사용하고 새 목록 객체를 생성하면 됩니다.
 
a = (20,10,30,9,8)
b = sorted(a)   #b是新对象,内容是:[8, 9,10, 20, 30]
지퍼
       zip( list 1 , list 2 , ...) 은 여러 목록의 해당 위치에 있는 요소를 튜플로 결합하고 zip 개체를 반환합니다.
각 반복자의 요소 수가 일치하지 않으면 반환되는 목록의 길이는 가장 짧은 객체와 같습니다.
a = [10,20,30]
b = [40,50,60]
c = [70,80,90,100]
d = zip(a,b,c)
print(d)   #zip object
e = list(d) #列表:[(10, 40, 70), (20, 50,80), (30, 60, 90)]
print(e)
Generator Comprehension은 튜플을 생성합니다.
          공식적으로 생성기 내포는 생성기 내포가 괄호를 사용한다는 점을 제외하면 목록 내포와 유사합니다.
     
         리스트 내포는 리스트 객체를 직접 생성하고 제너레이터 내포는 리스트도 튜플도 아닌 제너레이터 객체를 생성합니다.
        제너레이터 객체를 통해 리스트나 튜플로 변환할 수 있습니다. 제너레이터 객체의 __next__() 메서드를 사용하여 순회하거나 반복자 객체로 직접 사용할 수도 있습니다. 어떤 방법을 사용하든 요소 액세스가 끝난 후 그 안에 있는 요소를 다시 방문해야 하는 경우 생성기 개체를 다시 만들어야 합니다.
    발전기 사용 테스트
#列表推导式: [0, 2, 4, 6, 8]
#a = [x*2 for x in range(5)]
#print(a)
s = (x*2 for x in range(5))
print(s)   #<generator object <genexpr> at0x0000021C80BE2880>
b = tuple(s)
print(b)  #(0, 2, 4, 6, 8)
c = tuple(s)
print(c)  #()
s2 = (x for x in range(3))
print(s2.__next__())  #0
print(s2.__next__()) #1
print(s2.__next__())  #2
#print(s2.__next__())  #报错:
StopIteration

(4) 튜플 수정

튜플의 요소 값은 수정할 수 없지만 튜플을 연결하고 결합할 수 있습니다.구체적인 코드는 다음과 같습니다.

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print tup3

(5) 닫는 구분 기호 없음

쉼표로 구분된 임의의 서명되지 않은 개체는 다음 예제와 같이 기본적으로 튜플입니다.

 

(6) 튜플 연산자

문자열과 마찬가지로 튜플은 + 및 * 기호를 사용하여 작동할 수 있습니다. 즉, 결합 및 복사가 가능하여 작업 후 새 튜플이 생성될 수 있습니다.

파이썬 표현 결과 설명하다
len((1, 2, 3)) 요소 수 계산
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 연결하다
('안녕!',) * 4 ('안녕!', '안녕!', '안녕!', '안녕!') 복사
3인치(1, 2, 3) 진실 요소가 존재합니다
(1, 2, 3)의 x에 대해: x를 인쇄합니다. 1 2 3 반복

(7) 튜플 내장 함수

Python 튜플에는 다음과 같은 내장 함수가 포함되어 있습니다.

 방법 및 설명
cmp(튜플1,튜플2) 두 튜플 요소를 비교합니다.
렌(튜플) 튜플 요소의 수를 센다.
최대(튜플) 튜플에 있는 요소의 최대값을 반환합니다.
최소(튜플) 튜플에 있는 요소의 최소값을 반환합니다.
튜플() tuple(seq)은
리스트를 튜플로 변환합니다.
튜플의 핵심 기능은 불변 시퀀스입니다.
2 - 튜플은 목록보다 액세스 및 처리가 더 빠릅니다.
3 정수 및 문자열과 마찬가지로 튜플은 사전 키로 사용할 수 있지만 목록은 사전 키로 사용할 수 없습니다.

추천

출처blog.csdn.net/qq_63976098/article/details/131527489