Dolphins의 HelloWorld
Python의 tuple 본문
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 |