리스트 = [값, 값, 값]
문자열, 정수, 실수, 불 등 모든 자료형을 저장 (섞어서도 저장 가능)
,(콤마)로 구분
리스트 = []
리스트 = list()
보통 빈 리스트를 만들어 놓은 뒤에 새 값을 추가하는 방식으로 사용
range: 연속된 숫자 생성
range(시작숫자, 미포함숫자)
리스트 = list(range(횟수))
리스트 = list(range(시작, 끝, 증가폭))
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> c = list(range(-4, 10, 2))
>>> c
[-4, -2, 0, 2, 4, 6, 8]
리스트처럼 요소를 일렬로 저장하지만, 안에 저장된 요소를 변경, 추가, 삭제를 할 수 없음. 읽기 전용 리스트
튜플도 리스트처럼 여러 자료형을 섞어서 저장가능
튜플 = (값, 값, 값)
튜플 = 값, 값, 값
함수(클래스)를 사용하다 보면 값이 아닌 튜플을 넣어야 할 경우가 있음.
이때 값이 하나지만 튜플 넣어야 할때 활용 가능
튜플 = (값, )
튜플 = 값,
튜플 = tuple(range(횟수))
튜플 = tuple(range(시작, 끝))
튜플 = tuple(range(시작, 끝, 증가폭))
tuple() , list() 함수 활용
변수의 개수와 리스트(튜플)의 요소 개수는 같아야 함
>>> a, b, c = [1, 2, 3]
>>> print(a, b, c)
1 2 3
>>> d, e, f = (4, 5, 6)
>>> print(d, e, f)
4 5 6
변수에 리스트 또는 튜플을 할당
a = [1, 2, 3] # 리스트 패킹
b = (1, 2, 3) # 튜플 패킹
c = 1, 2, 3 # 튜플 패킹
리스트와 튜플 변수로도 변수 여러 개 가능
:리스트 언패킹(list unpacking), 튜플 언패킹(tuple unpacking)
>>> x = [1, 2, 3]
>>> a, b, c = x
>>> print(a, b, c)
1 2 3
>>> y = (4, 5, 6)
>>> d, e, f = y
>>> print(d, e, f)
4 5 6
표준 입력으로 정수가 입력됩니다. range의 시작하는 숫자는 -10, 끝나는 숫자는 10이며 입력된 정수만큼 증가하는 숫자가 들어가도록 튜플을 만들고, 해당 튜플을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).
number = int(input())
print(tuple(range(-10, 10, number)))
리스트, 튜플, range, 문자열처럼 값이 연속적으로 이어진 자료형
시퀀스 자료형으로 만든 객체를 시퀀스 객체라고 하며, 시퀀스 객체에 들어있는 각 값을 요소(element)
불리언으로 나옴
값 in 시퀀스객체
값 not in 시퀀스객체
값 not in 시퀀스객체
주의: range는 + 연산자로 객체를 연결할 수 없음 > 리스트 또는 튜플로 만들어서 연결
문자열은 + 연산자로 여러 문자열을 연결
문자열에 숫자 연결: 숫자를 str()함수로 문자열로 바꿔서 연결
시퀀스객체 정수
정수 시퀀스객체
len(시퀀스객체)
len(문자열)
공백까지 포함, 따옴표는 제외
시퀀스객체[인덱스]
range도 접근 가능
>>> r = range(0, 10, 2)
>>> r[2] # range의 세 번째(인덱스 2) 요소 출력
4
*** 시퀀스 객체에서 를 사용하면 실제로는 getitem 메서드를 호출
>>> a = [38, 21, 53, 62, 19]
>>> a.__getitem__(1)
21
뒤에서 ㅜ번째
마지막 요소 접근할 때 : -1
시퀀스객체[인덱스] = 값
* 튜플의 [ ]에 인덱스를 지정한 뒤 값을 할당하면 에러 >>> 튜플은 요소 변경 불가
튜플, range, 문자열은 읽기 전용**
del 시퀀스객체[인덱스]
시퀀스객체[시작인덱스:끝인덱스]
슬라이스를 했을 때 실제로 가져오는 요소는 시작 인덱스부터 끝 인덱스 - 1까지
>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[0:4] # 인덱스 0부터 3까지 잘라서 새 리스트를 만듦
[0, 10, 20, 30]
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭]
>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[2:8:3] # 인덱스 2부터 3씩 증가시키면서 인덱스 7까지 가져옴
[20, 50]
시퀀스객체[:끝인덱스]
처음부터 끝까지
시퀀스객체[시작인덱스:]
시퀀스객체[:]
시퀀스객체[::]
전체리스트
시퀀스객체[::증가폭]
del 시퀀스객체[시작인덱스:끝인덱스
>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> del a[2:5] # 인덱스 2부터 4까지 요소를 삭제
>>> a
[0, 10, 50, 60, 70, 80, 90]
표준 입력으로 숫자 또는 문자열 여러 개가 입력되어 리스트 x에 저장됩니다(입력되는 숫자 또는 문자열의 개수는 정해져 있지 않음). 다음 소스 코드를 완성하여 리스트 x의 마지막 요소 5개를 삭제한 뒤 튜플로 출력되게 만드세요.
del x[-5:]
print(tuple(x))
1.시퀀스 객체는 인덱스에 음수를 지정하면 뒤에서부터 요소에 접근
인덱스에 -5를 지정하면 뒤에서 5번째 요소에 접근
슬라이스를 사용하여 시작 인덱스를 -5으로 지정하고, 끝 인덱스를 생략하면 리스트의 마지막 요소 5개에 접근
2.리스트 x를 tuple에 넣은 뒤 print로 출력
표준 입력으로 문자열 두 개가 각 줄에 입력됩니다(문자열의 길이는 정해져 있지 않음). 첫 번째 문자열에서 인덱스가 홀수인 문자와 두 번째 문자열에서 인덱스가 짝수인 문자를 연결하여 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 연결 순서는 첫 번째 문자열, 두 번째 문자열 순입니다. 그리고 0은 짝수로 처리합니다.
a = input()
b = input()
print( a[1::2] + b[0::2] )
딕셔너리: 연관된 값을 묶어서 저장하는 용도 자료형
딕셔너리 = {키1: 값1, 키2: 값2 }
딕셔너리 = {}
딕셔너리 = dict()
키가 중복되지 않게 주의.
함수로 만들기도 가능
딕셔너리 = dict(키1=값1, 키2=값2)
딕셔너리 = dict(zip([키1, 키2], [값1, 값2]))
딕셔너리 = dict([(키1, 값1), (키2, 값2)])
딕셔너리 = dict({키1: 값1, 키2: 값2})
딕셔너리[키]
딕셔너리[키] = 값
키 in 딕셔너리
키 not in 딕셔너리
len(딕셔너리)
표준 입력으로 문자열 여러 개와 숫자(실수) 여러 개가 두 줄로 입력됩니다. 입력된 첫 번째 줄은 키, 두 번째 줄은 값으로 하여 딕셔너리를 생성한 뒤 딕셔너리를 출력하는 프로그램을 만드세요.
x = input().split()
y = map(float, input().split())
dic = dict(zip(x, y))
print(dic)