Dolphins의 HelloWorld

Python의 tuple 본문

python

Python의 tuple

돌핀's 2018. 7. 6. 15:38

tuple은 list와 비슷하다 


tuple을 선언해줄 때는


exp = (1,2,3) 과 같이 대괄호가 아닌 소괄호를 통해서 선언을 해주고


print를 하거나 exp[0]과 같은 명령어를 입력하면 list와 같은 방식으로 결과값이 나온다.


결정적인 list와 tuple의 차이점은


tuple은 변경불가능하다는 점이다.


list = [1,2,3,4]
tuple = (1,2,3,4)

list[1] = 10
tuple[1] = 10



위의 코드를 통해 item을 할당하는 과정에서 list와 달리 tuple에서 

에러가 나는것을 확인할 수 있다.


tuple은 list보다 빠르고 용량을 덜 차지하는 특징을 가지고있다.

고로 데이터에 대한 변경이 없다면 tuple을 사용하는 것이 훨씬 효율적이다.




tuple의 특징


dictionary의 사용에서 봤듯이 tuple을 통해 변수들을 연관시켜 함께 사용할 수 있다.


예를들어


dictionary에서 


for x,y in my_dict.items()


라는 명령어를 써서 key와 value로 구성된 tuple을 x,y라는 두개의 변수에 한번에 받는것을 볼 수 있었다.



또한 tuple은 서로 비교가 가능한데 앞에 있는 값부터 비교를 하여 대소를 판별한다.


print((1,2,3) < (4,5,6)) #1보다 4가 크기 때문에 true
print(('a','k','e') < ('a','b','z'))
#첫 원소인 a는 같고 b는 k보다 작기때문에 false



tuple 정렬


tuple은 변경 불가능한 속성을 가지고있기 때문에 자체적으로 정렬시키는 것을 불가능하다.


고로 정렬시킨 값을 얻고싶을 때는 list로 변환한 후 정렬된 값을 얻도록 해야한다.


아래는 dictionary에 있는 (key,value)에 대해 key를 기준으로 정렬된 값을 print하는 코드이다.


my_dict = {3:'three',1:'one',10:'ten',8:'eight'}
for a,b in sorted(my_dict.items()):
    print(a,b)



키가 아닌 value를 통해 정렬해야하는 상황도 있을것이다. 


list를 선언하여 dictionary에 있는 tuple을 list에 넣어줄 때


key와 value를 바꿔서 넣어주는 식으로 value순으로 정렬하는 것을 구현할 수 있다.


아래는 수학성적을 내림차순으로 출력해주는 코드이다.


data = dict()
data['Sam'] = 70; data['David'] = 98; data['Samson'] = 21
data['Paul'] = 32; data['Andrew'] = 95; data['Phil'] = 54
#dictionary안에 학생이름을 key, 점수를 value로 넣어주었다.
score = list() #list 생성
for key,value in data.items():
    x = (value,key) #key와 value를 바꾸어 tuple로 구성
    score.append(x) #list에 이 tuple을 저장

score = sorted(score,reverse=True)
#list를 내림차순으로 배열(점수를 기준으로 정렬됨)
for value,key in score:
    print(key,value) #출력



'python' 카테고리의 다른 글

Python의 정규식2  (0) 2018.07.09
Python의 정규식  (0) 2018.07.09
Python의 Dictionary  (0) 2018.07.06
Python의 list2  (0) 2018.07.05
Python의 파일 입출력  (0) 2018.07.05
Comments