개발자 승학

파이썬 리스트(튜플,셋,딕셔너리,문자열) 본문

it/python(파이썬)

파이썬 리스트(튜플,셋,딕셔너리,문자열)

유승학 2018. 5. 27. 00:50

자료 구조란?


자료 구조(data structure)

- 프로그렘에서 자료들을 저장하는 여러 가지 구조들


시퀀스(sequence)

- 순서를 가진 요소들의 집합


1. 문자열 : name = "choi"

2. 리스트 : scores = [2, 4, 6, 8, 10]

3. range 객체

4. 튜플

5. 바이트 시퀀스

6. 바이트 배열


파이썬 리스트에는 여러 종류가 있습니다.

튜플,셋,딕셔너리 그리고 문자열




먼저 튜플에 대해 알아보겠습니다.


튜플(tuple) : 변경될 수 없는 리스트


튜플은 값의 변경이 불가능 합니다. 그래서 sort()나 reverse()를 제공하지 않습니다.


전체적인 구조


튜플 = (항목1, 항목2, .... ,항목n-1, 항목n)


[코드]

colors = ("red", "green", "blue")

print(colors)

[결과]

('red', 'green', 'blue')



[코드]

numbers = (1, 2, 3, 4, 5)

print(numbers)

[결과]

(1, 2, 3, 4, 5)


만약 튜플에 값 변경을 하면 어떻게 될까요?

[코드]

numbers = ( 1, 2, 3, 4, 5 ) 

numbers[0] = 100

number리스트에 첫 번째 요소인 1에 값을 100으로 변경하면

[결과]

Traceback (most recent call last): File "C:/C++/Python/Test.py", line 2, in <module> numbers [0]=100 TypeError: 'tuple' object does not support item assignment

이와 같은 오류가 나오게 됩니다.


빈 튜플을 생성하고자 합니다. 리스트는 공백 리스트를 생성하기 위해 'list = []' 이와 같이 선언하면 공백으로 생성됩니다.

튜플은 'list = tuple()' 이렇게 생성하시면 됩니다.


튜플을 사용한 두 변수의 값 변경방법.


일반적인 프로그래밍 언어 같은 경우 x,y 두 변수의 값을 변경하기위해 임시 저장 객체인 temp라는 같은 타입의 변수를 선언하여 교환 하셨을 겁니다.

하지만 튜플은 temp객체를 만들필요가 없습니다.


[코드]

x = 1

y = 2

(x, y) = (y, x)

print(x,y)

[결과]

2 1


튜플을 위 예제처럼 대입연산이 가능합니다.


셋(set) : 수학에서의 집합, 중복되지 않은 항목들이 모인 것


셋에는 항목간에 순서가 없습니다.


공백 셋은 튜플과 비슷합니다.


'list = set()' 이렇게 공백셋을 생성하시고 값을 추가하기 위해서는

add()함수를 사용하시면 됩니다.

list.add(1)


셋에는 삭제하기 위한 함수가 두 가지가 있습니다.

remove()와 discard()  두 가지입니다.


set은 위에 설명과 같이 집합이라고 했습니다. 그러면 합집합,교집합 그리고 차집합이 있어야겟죠?

아래 예제를 볼게용~


[코드]

A = {1, 2, 3} 

B = {3, 4, 5}

print( A | B ) #합집합

 print ( A.union(B) )


print( A & B ) #교집합 

print ( A.intersection(B) )


print( A - B ) #차집합 

print ( A.difference(B) )


A.update( [7,8,9] )

print ( A )


A.remove( 8 ) 

print ( A )

[결과]

{1, 2, 3, 4, 5} 

{1, 2, 3, 4, 5}


{3} 
{3}

{1, 2} 
{1, 2}

{1, 2, 3, 7, 8, 9}

{1, 2, 3, 7, 9}


딕셔너리 : 키(key)와 값(value)의 쌍을 저장할 수 있는 객체.


딕셔너리는 간단한 예로 사전입니다.

단어와 단어의 설명이 저장된 형태입니다.


키(Key)    |    값(value)

"Apple"        "사과"

"Banana"      "바나나"


중요한 것은 keyvalue입니다.


딕셔너리 생성하기

- 키 : 변경 불가능한 객체

- 값 : 어떤 객체든 가능


전체적인 구조

딕셔너리 = { 키1:값1, 키2:값2, ...}


간단한 예로 이해해볼게요.

연락처를 볼게요


[코드]

contacts = { 'Kim':'01012345678', 'Park':'01012345679', 'Lee':'01012345680' }

print( contacts )

[결과]

{'Kim': '01012345678', 'Lee': '01012345680', 'Park': '01012345679'}


key에 사람의 성 그리고 :(콜론)으로 연결 후 value로 번호를 주었습니다.

그리고 이 딕셔너리를 출력하면

결과와 같이 나오게됩니다.

Comments