파이썬에서는 다양한 자료형을 다룰 수 있는데, 그 중에서도 시퀀스 자료형은 데이터의 순서 있는 나열을 다루는 데에 사용되며, 주로 리스트, 튜플, 레인지, 문자열, 바이트 시퀀스등이 이에 속합니다.
시퀀스 자료형은 데이터를 순서대로 담을 수 있는 자료형입니다. 그래서 데이터를 하나씩 차례로 살펴보거나, 특정 위치의 데이터에 접근하고 수정할 수 있습니다.
변수는 간단히 말해서 데이터를 담는 상자인데요. 시퀀스 자료형을 사용하면 이런 변수를 더 효과적으로 사용할 수 있으며, 변수를 통해 데이터를 편리하게 저장하고 다룰 수 있습니다.
# 리스트 만들기
my_list = [1, 2, 3, 4, 5]
# 리스트에서 데이터 가져오기
first_element = my_list[0]
print(f"첫 번째 데이터: {first_element}")
# 리스트 일부 가져오기
subset = my_list[1:4]
print(f"인덱스 1부터 3까지의 일부 데이터: {subset}")
코드를 입력하세요
위 코드에서는 리스트를 만들고, 인덱스를 사용하여 특정 위치의 데이터를 가져오거나 일부를 추출했습니다.
리스트는 파이썬에서 가장 많이 사용되는 시퀀스 자료형 중 하나입니다. 여러 데이터를 한꺼번에 담을 수 있는데, 이 데이터들은 순서대로 배열돼 있어요.
리스트를 만들 때는 대괄호 [ ]
를 사용합니다. 예를 들어, 1부터 5까지의 숫자를 가진 리스트를 만들면 다음과 같아요.
# 리스트 생성
my_list = [1, 2, 3, 4, 5]
하세요
리스트를 만들었으면, 이 안에 있는 데이터를 변경할 수 있는데요. 예를 들어, 첫 번째 데이터를 10으로 바꾸고 싶다면 이렇게 할 수 있습니다.
# 첫 번째 데이터 수정
my_list[0] = 10
드를 입력하세요
리스트 안의 특정 데이터에 접근하려면 인덱스를 사용합니다. 인덱스는 0부터 시작하며, 대괄호 안에 넣어 사용할 수 있어요.
# 두 번째 데이터 가져오기
second_element = my_list[1]
슬라이싱은 리스트의 일부를 추출하는 방법입니다. 시작 인덱스부터 끝 인덱스 전까지의 부분을 가져올 수 있어요.
# 인덱스 1부터 3까지의 부분 리스트
subset = my_list[1:4]
튜플은 리스트와 비슷하지만 몇 가지 차이가 있습니다. 튜플은 한 번 정의되면 내부의 데이터를 변경할 수 없다는 특징이 있습니다. 이것을 "불변성"이라고 해요. 또한, 리스트는 대괄호 [ ]
로 만들지만, 튜플은 소괄호 ( )
를 사용해 만듭니다.
# 튜플 생성
my_tuple = (1, 2, 3, 4, 5)
불변성은 데이터를 안정적으로 관리할 수 있게 도와줍니다. 튜플은 데이터가 바뀌지 않기 때문에 실수로 데이터를 수정하는 일을 방지할 수 있어요.
튜플에서 여러 변수에 값을 한 번에 할당하는 것을 "언패킹"이라고 합니다.
# 튜플 언패킹
a, b, c, d, e = my_tuple
위의 코드에서 a, b, c, d, e에 순서대로 튜플의 값이 할당되는데, 이것이 바로 언패킹입니다.
패킹은 반대로 여러 변수를 튜플로 묶는 것입니다.
# 튜플 패킹
new_tuple = 10, 20, 30
위의 코드에서 new_tuple은 하나의 튜플로 묶여져 있어요. 이게 바로 패킹입니다.
패킹과 언패킹은 튜플을 다룰 때 유용하게 사용되는데, 코드를 간결하게 만들어주고 가독성을 높여줍니다.
레인지는 연속된 숫자들을 나타내는 데에 사용되는 자료형입니다. 주로 반복문에서 사용되면서 특정 범위의 숫자를 만들 때 효과적으로 활용돼요.
레인지를 만들 때는 시작값, 끝값, 그리고 옵션으로 건너뛰는 값이 들어갑니다.
# 레인지 생성
my_range = range(1, 10, 2)
위의 코드에서는 1부터 10까지의 숫자 중에서 2씩 건너뛰는 레인지를 만들었습니다.
레인지는 주로 반복문에서 사용돼요. 예를 들어, 아래의 코드는 1부터 10까지의 숫자를 출력하는 간단한 반복문입니다.
# 레인지와 반복문의 예
for i in range(1, 11):
print(i)
위의 코드에서 range(1, 11)
은 1부터 10까지의 숫자를 나타내고, for
반복문을 통해 각 숫자를 출력하게 됩니다.
레인지는 슬라이싱에서도 유용하게 사용돼요. 특정 범위의 값을 갖는 레인지를 만들고, 이를 리스트로 변환할 수 있습니다.
# 레인지를 사용한 슬라이싱
subset = list(range(5, 15))
위의 코드에서 range(5, 15)
는 5부터 14까지의 숫자를 나타내며, list()
함수를 사용하여 리스트로 변환합니다.
레인지는 특정 범위의 숫자를 효과적으로 다룰 때 유용한 도구이며, 반복문과의 조합으로 코드를 간결하게 만들어줍니다.
문자열은 문자들의 나열로, 파이썬에서 텍스트를 다룰 때 주로 사용되는 자료형입니다. 문자열은 작은 따옴표('
)나 큰 따옴표("
)로 둘러싸여 있습니다.
# 문자열 생성
my_string = "Hello, Python!"
문자열은 다양한 연산을 지원하는데요. 두 문자열을 합치는 것은 간단히 +
기호를 사용하면 됩니다.
# 문자열 합치기
greeting = "Hello"
name = "Python"
full_greeting = greeting + ", " + name + "!"
위의 코드에서 full_greeting
은 "Hello, Python!"이 됩니다.
이뿐만 아니라, 문자열의 반복도 가능합니다. * 기호를 사용하여 문자열을 특정 횟수만큼 반복할 수 있습니다.
# 문자열 반복
stars = "*" * 5
위의 코드에서 stars는 "*"가 됩니다. * 기호를 사용하여 문자열을 5번 반복했어요.
문자열에는 다양한 메소드가 내장돼 있어 특정 작업을 수행할 수 있습니다. 예를 들어, 문자열의 길이를 알고 싶으면 len()
메소드를 사용합니다.
# 문자열 길이 구하기
length = len(my_string)
또한, 문자열을 소문자로 만들거나 대문자로 변환하는 등 다양한 문자열 메소드가 있습니다.
# 소문자로 변환
lowercase_string = my_string.lower()
# 대문자로 변환
uppercase_string = my_string.upper()
문자열은 텍스트 데이터를 다룰 때 매우 유용합니다. 파일에서 데이터를 읽거나 사용자와 상호작용하는 프로그램에서 입력을 처리하는 등 다양한 상황에서 문자열이 활용됩니다.
바이트 시퀀스는 이진 데이터를 다룰 때 사용되는 자료형입니다. 이진 데이터는 텍스트가 아닌 0과 1로 이루어진 데이터를 의미합니다. 예를 들어, 이미지, 음성 파일, 혹은 네트워크 통신에서 전송되는 이진 데이터 등이 있습니다.
# 바이트 시퀀스 생성
my_bytes = b'\x68\x65\x6c\x6c\x6f'
위의 코드에서 b
접두사는 이진 데이터를 나타냅니다. \x
는 16진수를 나타내며, 따라서 위의 예제는 ASCII 코드를 사용하여 "hello"라는 문자열을 표현한 것입니다.
바이트와 바이트 배열은 둘 다 이진 데이터를 다루는데 사용되지만, 바이트 배열은 가변(mutable)하다는 차이가 있습니다. 즉, 바이트 배열은 데이터의 일부를 변경할 수 있지만, 일반적인 바이트 객체는 불변(immutable)하며 변경할 수 없습니다.
# 바이트 배열 생성
my_bytearray = bytearray(b'\x68\x65\x6c\x6c\x6f')
# 바이트 배열의 일부 변경
my_bytearray[0] = 0x48 # 'H'
이진 데이터를 텍스트로 변환하는 과정을 "디코딩", 텍스트를 이진 데이터로 변환하는 과정을 "인코딩"이라고 합니다. 이때 사용되는 것이 인코딩 방식입니다.
# 디코딩
decoded_string = my_bytes.decode('utf-8')
# 인코딩
encoded_bytes = my_string.encode('utf-8')
위의 코드에서는 UTF-8 인코딩을 사용하여 이진 데이터와 텍스트 간의 변환을 보여줍니다.
바이트 시퀀스는 주로 파일 입출력, 네트워크 통신 등에서 이진 데이터를 처리할 때 사용되며, 바이트 배열을 통해 데이터를 효과적으로 변경할 수 있습니다.
리스트 컴프리헨션은 파이썬에서 리스트를 간결하게 만드는 방법 중 하나입니다. 이를 사용하면 한 줄로 간단하게 리스트를 생성할 수 있습니다.
# 리스트 컴프리헨션 예제: 1부터 10까지의 제곱값 리스트
squares = [x**2 for x in range(1, 11)]
위의 코드에서 [x**2 for x in range(1, 11)]
는 1부터 10까지의 숫자를 제곱하여 리스트로 만듭니다.
리스트 컴프리헨션은 반복문과 조건문을 사용하여 더 복잡한 리스트도 간결하게 만들 수 있습니다.
# 조건문을 활용한 리스트 컴프리헨션 예제: 1부터 10까지의 홀수만 포함하는 리스트
odd_squares = [x**2 for x in range(1, 11) if x % 2 == 1]
위의 코드에서 [x**2 for x in range(1, 11) if x % 2 == 1]
는 1부터 10까지의 홀수에 대한 제곱값을 리스트로 만듭니다.
리스트 컴프리헨션은 시퀀스 자료형 간의 변환도 용이하게 합니다. 예를 들어, 문자열의 각 문자를 리스트로 만들 수 있습니다.
# 문자열을 리스트로 변환하는 리스트 컴프리헨션 예제
string_to_list = [char for char in "Python"]
위의 코드에서 [char for char in "Python"]
는 문자열 "Python"을 각 문자로 분리하여 리스트로 만듭니다.
리스트 컴프리헨션은 코드를 간결하게 작성하고 가독성을 높이는데 유용하며, 다양한 상황에서 활용할 수 있습니다.