파이썬에서 튜플이란 쉼표로 구분 된 객체의 모음입니다.


말로만 들으면 리스트와 비슷하다고 생각 되시겠지만 엄연한 차이가 있습니다.


그중 가장 두드러진 차이점은 바로 다음과 같습니다.



☞ 튜플은 생성 후 요소의 값이나 튜플의 크기를 변경할 수 없다.


☞ 리스트는 요소의 값이나 리스트의 크기를 언제 어디서든 변경 할 수 있다.



그렇다면 각각의 컨테이너(또는 객체)들은 어디에 어떻게 사용될까요?


보통 리스트는 요소들의 개수나 내용이 명확하지 않는 경우에 주로 사용합니다.


반면에 튜플은 요소들의 개수와 내용이 명확하기 때문에 요소 각각의 인덱스는 중요한 의미를 가지죠.



튜플의 기본 사용법입니다.


★ 튜플 객체 선언하기 - 예제 코드


tuple1 = ()


print(tuple1) # () 출력


튜플의 요소들의 집합은 리스트의 대괄호 '[ ]' 대신 소괄호 '( )'를 사용합니다. 


또한 다음과 같이 선언할 수도 있습니다.


tuple1 = (1, 2)

tuple2 = 1, 2


print(tuple1) # (1, 2) 출력

print(tuple2) # (1, 2) 출력


위 예제 코드처럼 소괄호 '( )'를 사용하거나 사용하지 않고 선언할 수 있습니다.


* 단 단일요소(요소가 1개)인 경우에는 ,(콤마)를 사용해야 튜플로 선언할 수 있습니다.


tuple1 = 1 # ,(콤마)를 사용하지 않은 경우 

tuple2 = 1, #  ,(콤마)를 사용한 경우  


print(tuple1) # 1 출력 (정수)

print(tuple2) # (1, ) 출력 (튜플)


또한 다음 예제 코드처럼 반복을 사용하여 튜플을 선언 할 수 있습니다.


tuple1 = ("Hello") * 3

tuple2 = ("Hello",) * 3


print(tuple1) # HelloHelloHello 출력

print(tuple2) # ('Hello', 'Hello', 'Hello') 출력


단, 위에서 설명했듯이 ,(콤마)를 사용하지 않는 경우 튜플로 선언되지 않습니다.




★ 튜플 합치기


다음 예제 코드와 같이 + 연산자를 사용하여 튜플을 기준 튜플 뒤에 붙일 수 있습니다.


tuple1 = (1, 2)

tuple2 = ("hi", "bye")

tuple3 = tuple1 + tuple2


print(tuple3) # (1, 2, 'hi', 'bye') 출력


다음 예제 코드처럼 튜플안에 튜플을 중첩시킬 수도 있습니다.


tuple1 = (1, 2)

tuple2 = ("hi", "bye")

tuple3 = (tuple1 , tuple2)


print(tuple3) # ((1, 2), ('hi', 'bye')) 출력



★ 튜플에서 요소 추가 및 변경 시도


위에서 설명했듯이 튜플은 생성 후 요소의 값이나 크기를 변경할 수 없다고했는데요,


파이썬에서 튜플에 요소를 추가, 변경하거나 크기를 변경했을 때 어떻게 되는지 알아보겠습니다.


다음 예제 코드는 튜플의 요소를 변경하려는 시도입니다.


tuple1 = (1, 2, 3, 4)

tuple1[0] = 3 # 오류발생! 

# TypeError: 'tuple' object does not support item assignment


print(tuple1)


위 코드를 실행하면 튜플 객체는 아이템(요소) 할당이 불가능하다고 나옵니다.


튜플에 요소를 추가하려해도 리스트와 달리 append() 내부 함수가 존재하지 않습니다.



★ 튜플에서 슬라이스


리스트와 마찬가지로 튜플에서도 슬라이스를 제공하며 그 사용법 및 기능은 같습니다.


리스트 슬라이스 사용법 및 기능 확인하러가기 ☜ 클릭!


tuple1 = (1, 2, 3, 4)


tuple2 = tuple1[1:] # (2, 3, 4) 출력

tuple3 = tuple1[2:3] # (3, ) 출력

tuple4 = tuple1[0:3:2] # (1, 3) 출력

tuple5 = tuple4[::-1] # (3, 1) 출력



★ 튜플의 길이 구하기


튜플의 길이(크기)는 len()함수를 사용하여 간단하게 구할 수 있습니다.


tuple1 = (1, 2, 3, 4)


print(len(tuple1)) # 4 출력



★ 리스트를 튜플로 변환하기


tuple() 이라는 함수를 통해 리스트를 다음 예제 코드와 같이 변경할 수 있습니다.


list1 = [ 0, 1, 2, 3 ]


tuple1 = (tuple(list1))

print(tuple1) # (0, 1, 2, 3) 출력


tuple2 = (tuple("hello"))

print(tuple2) # ('h', 'e', 'l', 'l', 'o') 출력







이상 '파이썬 튜플'에 대해 알아보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!


공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.




파이썬의 리스트는 수학적 문장들을 한줄로 표현할 수 있습니다.


리스트로 제곱 표현하기 


기존의 파이썬 리스트를 활용하여 반복문으로 1의 제곱부터 9의 제곱까지 출력하는 방법입니다.


예제 코드 - 제곱 출력


square = []

for x in range(1, 10) :

    square.append(x ** 2)

print(square)


실행 결과


[1, 4, 9, 16, 25, 36, 49, 64, 81]


위 반복문으로 구현한 제곱 출력 코드를 다음과 같이 리스트 내에서 사용할 수 있습니다.


square = [x ** 2 for x in range(1, 10)]


위 반복문 3줄짜리 코드가 1줄로 대체되었습니다!!


출력 결과 역시 동일함을 알 수 있습니다.


위의 파이썬 리스트의 강력한 기능을 활용 해 구구단 출력 코드를 작성 해 보겠습니다.


예제 코드 - 구구단 출력


list1 = []


for i in range(2, 10) :

    for j in range(1, 10) :

        list1.append(i * j)


for i in range(2, 10) :

    for j in range(1, 10) :

        print("{} * {} = {}".format(i, j, list1[(j - 1)+((i - 2) * 9)]))

    print()


실행 결과


2 * 1 = 2

2 * 2 = 4

2 * 3 = 6

2 * 4 = 8

2 * 5 = 10

2 * 6 = 12

2 * 7 = 14

2 * 8 = 16

2 * 9 = 18


... 중략 ....


9 * 1 = 9

9 * 2 = 18

9 * 3 = 27

9 * 4 = 36

9 * 5 = 45

9 * 6 = 54

9 * 7 = 63

9 * 8 = 72

9 * 9 = 81


이중 for반복문을 사용하여 구구단을 출력하는 모습입니다.


이를 리스트 선언문에서 한줄로 만들면 다음과 같습니다.


list1 = [i*j for i in range(2,10) for j in range(1, 10)]


for i in range(2, 10) :

    for j in range(1, 10) :

        print("{} * {} = {}".format(i, j, list1[(j-1)+((i-2)*9)]))

    print()


출력문을 제외하면 코드는 단 한줄입니다. (파란색 코드)


이처럼 리스트를 선언할 때 파이썬의 리스트 기능을 적절히 사용하여 코드를 간단하고 보기 쉽게 만들 수 있습니다.




또한 파이썬 리스트에는 슬라이싱 기능또한 존재합니다.


간단히 말해 리스트 요소들을 필요한 만큼 자를 수 있는 기능입니다.


다음과 같은 리스트가 있다고 가정합시다.


list1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]


0부터 9까지 정수가 존재하는 리스트입니다.


여기서 3부터 8까지만 필요한 정수 리스트가 필요하다고 가정합니다.


새로운 배열을 생성하여 3부터 8까지 작성하여 선언할 필요없이 다음과 같이 선언할 수 있습니다.


list1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

list2 = list1[ 3 : 9 ]


정말 간단하죠?


: 연산자를 통해 시작 인덱스와 종료 인덱스를 설정해주면 자동으로 시작인덱스부터


종료인덱스-1 까지 리스트 요소들을 잘라줍니다.


또한 다음과 같이 사용 할 수도 있습니다.


list1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]


list2 = list1[ 3 : 9 ] # [3, 4, 5, 6, 7, 8] 출력

list3 = list1[ 1 : ] # [1, 2, 3, 4, 5, 6, 7, 8, 9] 출력

list4 = list1[ : 8 ] # [0, 1, 2, 3, 4, 5, 6, 7] 출력

list5 = list1[ 1 : 8 : 2 ] # [1, 3 ,5, 7] 출력

list6 = list1[ : : -1 ] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 출력

list7 = list1[ 10 : 0 : -2 ] # [9, 7, 5, 3, 1] 출력


list2는 list1의 요소를 3부터 8까지 자른 리스트입니다.


list3는 list1의 요소를 1부터 끝까지 자른 리스트입니다.


list4는 list1의 요소를 처음부터 8까지 자른 리스트입니다.


list5는 list1의 요소를 1부터 8까지 간격이 2씩 자른 리스트입니다.


list6는 list1의 요소를 처음부터 끝까지 역순 리스트입니다.


list7는 list1의 요소를 10부터 0까지 간격이 2씩 역순 리스트입니다.



또한 필터(filter)함수를 사용하여 람다(lambda)식으로 제공된 조건을 첫번째 인수로 사용하고


두번째 인수에 조건을 나열하여 필터링 가능합니다.


list1 = list(filter(lambda x : x % 2 == 1, range(0, 10))) # [1, 3, 5, 7, 9] 출력

list2 = list(filter(lambda x : x >= 0, range(-5, 5))) # [0, 1, 2, 3, 4] 출력

list3 = reduce(lambda a, b : a if(a > b) else b, [5, -5, 0, 3, 11, -20, 7]) # 11 출력

#reduce 함수를 사용하기 위해 from functools import reduce 추가할것.


list1는 0부터 9사이 숫자 중 홀수만 가지는 리스트입니다.


list2는 -5부터 4사이 숫자 중 0보다 큰 숫자만 가지는 리스트입니다.


list3는 마지막 인수 리스트 중 가장 큰 숫자를 가지는 리스트입니다.




이상 '파이썬 리스트 활용'에 대해 알아보았습니다.


질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!


공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.





안녕하세요 열코입니다.


리스트는 파이썬에서 가장 강력한 도구 중 하나로 다른 언어에서의 배열과 비슷합니다.

리스트의 최대 장점은 리스트의 요소들이 항상 같은 타입일 필요가 없다는 것입니다.

리스트에는 정수, 실수, 문자열, 객체 등이 포함될 수 있습니다.

다음 예를 확인해 봅시다.


리스트 - 예제코드1

mylist = [1, 0.1, "string", 3+1]

print(mylist)

print(mylist[1])


위 코드처럼 리스트 요소에 정수, 실수, 문자열, 식이 포함되어 있습니다.

이를 출력하면 다음과 같습니다.


실행결과

[1, 0.1, 'string', 4]

0.1


크기또한 가변적이어서 선언 후 요소 및 크기가 변경될 수 있습니다.

다음 예를 확인해봅시다.


리스트 - 예제코드2

mylist = [1, 0.1, "string", 3+1]

mylist.append("add")

mylist.insert(0, 9.9)

print(mylist)


위 예제 코드처럼 append 또는 insert 함수를 통해 리스트에 요소를 추가할 수 있습니다.

실행결과를 확인해볼까요?



실행결과

[9.9, 1, 0.1, 'string', 4, 'add']


append를 통해 추가한 "add" 문자열은 리스트의 맨 마지막 요소 뒤에 추가되었으며,

insert를 통해 추가한 9.9 실수는 0이라는 인덱스를 통해 리스트의 맨 앞에 추가되었습니다.


이처럼 파이썬의 리스트는 강력한 기능을 가지고있습니다.

또한 아래의 내장 함수(Built-in Functions)를 포함하고 있습니다.



☞ 파이썬 리스트 내장 함수


- Append() : 리스트의 맨 끝에 요소를 추가합니다.

list1 = [0, 1, 2, 3]

list1.append(4)

list1.append("str1")

list1.append(0.3)

print(list1)


♪ 실행 결과 : [0, 1, 2, 3, 4, 'str1', 0.3]


- Extend() : 리스트에 iterable 객체 (리스트, 튜플, 딕셔너리 등)의 요소들을 추가합니다.

list1 = [0, 1, 2, 3]

list2 = []

list2.extend(list1)

print(list2)


♪ 실행 결과 : [0, 1, 2, 3]


- Insert() : 지정된 인덱스의 요소를 추가합니다.

list1 = [0, 1, 2, 3]

list1.insert(2, "2번째")

print(list1)


♪ 실행 결과 : [0, 1, '2번째', 2, 3]


- Remove() : 지정된 리스트의 요소를 제거합니다.

list1 = [3, 1, 9.9, "str", 0.5]

list1.remove(9.9)

print(list1)


♪ 실행 결과 : [3, 1, 'str', 0.5]


- Pop() : 지정된 인덱스의 요소를 제거합니다.

list1 = [3, 1, 9.9, "str", 0.5]

list1.pop(3)

print(list1)


♪ 실행 결과 : [3, 1, 9.9, 0.5]


- Clear() : 리스트의 모든 요소를 제거합니다.

list1 = [3, 1, 9.9, "str", 0.5]

list1.clear()

print(list1)


♪ 실행 결과 : []


- Index() : 지정된 리스트의 요소의 인덱스를 바

list1 = [3, 1, 9.9, "str", 0.5]

print(list1.index(9.9))


♪ 실행 결과 : 2



- Count() : 지정된 요소의 리스트 내의 개수를 반환합니다.

list1 = [1, 2, 2, 3, 3, 3]

print(list1.count(2))


♪ 실행 결과 : 2


- Sort() : 리스트의 항목을 오름차순으로 정렬합니다.

list1 = [4, 2, 1, 5, 0, 3]

list1.sort()

print(list1)


♪ 실행 결과 : [0, 1, 2, 3, 4, 5]


- Reverse() : 리스트의 항목을 순서를 역순으로 변경합니다.

list1 = [4, 2, 1, 5, 0, 3]

list1.sort()

list1.reverse()

print(list1)


♪ 실행 결과 : [5, 4, 3, 2, 1, 0]


- Copy() : 리스트의 얕은 복사(Shallow copy)를 수행합니다.

list1 = [4, 2, 1, 5, 0, 3]

list2 = list1.copy()

print(list2)


♪ 실행 결과 : [4, 2, 1, 5, 0, 3]


이상 '파이썬 리스트'에 대해 살펴보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!

공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.




Python에서 MySQL DB를 사용하기 위해서는 PyMySQL을 설치해야 합니다.


PyMySQL은 다음 공식 사이트에서 다운로드 가능합니다.
https://github.com/PyMySQL/PyMySQL

* 설치방법
1. CMD창을 관리자 권한으로 실행
2. Python이 설치된 폴더 하위 폴더 Scripts로 이동
ex) cd C:\Users\user\AppData\Local\Programs\Python\Python36-32\Scripts
3. 다음 명령어 실행 
pip install pymysql
4. Successfully installed pymysql-0.7.9 이 출력되면 설치 완료

* 설치환경
1. 파이썬 : Python 3.6
2. 파이썬 개발 툴 : PyCharm Community Edition 2018.1.4
3. 데이터베이스 :  MySQL 5.1.41-community


* 소스코드

import pymysql

conn = pymysql.connect(host 'localhost'user 'id'password 'password' ,db 'DB명')
# host = DB주소(localhost 또는 ip주소), user = DB id, password = DB password, db = DB명
curs = conn.cursor()

sql = "SELECT * FROM TABLE명" # 실행 할 쿼리문 입력
curs.execute(sql) # 쿼리문 실행

rows = curs.fetchall() # 데이터 패치

for in rows :
     print(i)

conn.close()

쿼리문과 for문에서 데이터를 적절히 처리해서 필요한 프로그램에 사용하면 됩니다.
오류나 질문사항은 댓글로 달아주세요.



to Top