728x90
<리스트>
- 여러개의 데이터를 하나의 변수에 지정
- 형식: a = list() / a = []
a = list()
b = []
>> 두 가지 방법 모두 사용 중
>>> print(type(a), type(b))
<class 'list'> <class 'list'> // 두 표현 방법 모두 list 함수임을 알림
>>> a = [1, 2, 3, 4, 5]
>>> print(a, type(a))
[1, 2, 3, 4, 5] <class 'list'>
>>> person = ['si eun', 60, 165]
>>> print(person)
['si eun', 60, 165, True]
print('1' + '1')
11
print(1 + 1)
2
print([1, 2, 3] + [4, 5, 6])
[1, 2, 3, 4, 5, 6]
print(list(range(0, 10)) + list(range(9, 20)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
<range 함수>
**** range(): 일정 범위의 연속된 정수를 생성하는데 사용
1부터 10까지 만들고 싶으면 range(1,11)로 지정해야 함**
>>> b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> b = list(range(1,11))
>>> print(b)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> c = list(range(1, 30, 3)) // 1부터 30까지 정수를 생성하는데, 3씩 건너뛰어 생성
>>> print(c)
[1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
**c = list(range(0, 20, 2)) # 짝수 생성
c = list(range(1, 20, 2)) # 홀수 생성**
print(list(range(-10, 10, 4))) // -10부터 10까지 정수를 생성하는데, 4씩 건너뛰어 생성
[-10, -6, -2, 2, 6]
print(list(range(-10, -10, -2))) // -10부터 110까지 정수를 생성하는데, -2씩 건너뛰어 생성
[]
print(range(1, 10) + range(9, 20)) >> 오류로 연산 불가능
Traceback (most recent call last):
File "<pyshell#134>", line 1, in <module>
print(range(1, 10) + range(9, 20))
TypeError: unsupported operand type(s) for +: 'range' and 'range'
<튜플> 리스트의 읽기 전용
- 여러가지 형식의 데이터를 담는 자료형
- ( ) 괄호로 묶고 쉼표로 구분된 데이터를 리스트 형식으로 지정한 것
- 튜플 안의 값을 변경할 수 없음
>>> a = (1, 2, 3, 4, 5)
>>> print(a)
(1, 2, 3, 4, 5)
print(tuple(range(0, 10)) + tuple(range(9, 20)))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
a = list(range(0, 100, 10))
a = a * 5
print(a)
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>> 0, 10, 20, 30, 40, 50, 60, 70, 80, 90을 다섯번 반복
<요소의 개수 확인> len() 함수
- 리스트에 들어있는 요수 개수, 리스트의 크기를 알려 줌
a = list(range(0, 100, 10))
print(a)
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90] >> 요소 10개
print(len(a))
10
>>> c = 'hello world'
>>> print(len(c))
11 >> 빈칸도 개수로 판단
<시퀀스 자료형 사용법>
>>> a = list(range(0, 30, 2)) // 0부터 30까지 정수를 생성하는데, 2씩 건너뛰어 생성
>>> print(a)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
>> 데이터가 많은 경우, 데이터가 있는지 확인하는 방법 **** in**
>>> print(222 in a) // a에 222가 있어?
False (없어)
>> 데이터가 많은 경우, 데이터가 없는지 확인하는 방법 ** not in
>>> print(222 not in a) // a에 222가 없어?
True (없어)
** 숫자 뿐만아니라, 문자도 가능
>>> b = 'hello world'
>>> print('w' in b)
True
<인덱스 사용>
- 인덱스: 시퀀스 객체의 각 요소의 순서 표현
- 인덱스는 무조건 0부터 시작
>>> a = [10, 20, 30, 40, 50]
>> 10=0 20=1 30=2 ... 50=4 (인덱스)
>>> print(len(a), 40 in a) >> 리스트 a의 길이(요소)를 표시하고, 40이 a에 속해있는지 출력
5 True
>>> print(a[0]) >> 리스트 a의 0번째 요소를 출력
10
>>> print(a[4]) >> 리스트 a의 4번째 요소를 출력
50
>>> print(a[len(a)-1])
50
>> len(a)= 5
5-1=4
>>> print(a[4]) >> 리스트 a의 4번째 요소를 출력
**50**
>>> print(a[-1]) ** 마지막 인덱스 지정: a[-1]
50
# 인덱스를 이용한 리스트 요소의 값 수정 및 삭제 // 문자열도 수정 가능...한가?
>>> a[-1] = 60
>>> a[0] = 19
>>> print(a)
[19, 20, 30, 40, 60]
>> [10, 20, 30, 40, 50]에서 [19, 20, 30, 40, 60]로 변경
>>> a = [10, 20, 30, 40, 50]
>>> print(a)
>>> del a[-1]
>>> print(a)
[19, 20, 30, 40]
<슬라이싱>
- 연속적인 객체들에서(예: 리스트, 튜플, 문자열) 범위를 지정해 객체들을 가져오는 방법
- 형식: 리스트 이름[2:5(몇 번째부터 : 몇 번째까지]
>>> a = [1, 2, 3, 4, 5]
>>> print(a[2:4]) (2:4에서 4는 미만으로 처리하기 때문에 4번째가 5임에도 불구하고 -1인 4 출력)
[3, 4]
>>> print(a[2:5])
[3, 4, 5]
>>> a = list(range(0, 30))
>>> print(a[0:11:2]) // 0번째부터 11번째(10번째)까지 가져오는데, 2씩 건너뛰어(짝수) 출력
[0, 2, 4, 6, 8, 10]
>>> print(a[1:11:2]) // 1번째부터 11번째(10번째)까지 가져오는데, 2씩 건너뛰어(홀) 출력
[1, 3, 5, 7, 9]
<딕셔너리>
딕셔너리는 { }(중괄호) 안에 키(요소): 값 형식으로 저장
각 키와 값은 ,(콤마)로 구분
- 딕셔너리 = {키1: 값1, 키2: 값2}
>>> c = {'나이': 25, '키': 165, '몸무게': 60, '성별': '여', '성적': [10, 20, 30, 40]}
>>> print(len(c)) // 딕셔너리 c의 요소 개수 출력
5
>>> print(c['나이'], c['키'], c['몸무게']) // 딕셔너리 c의 나이, 키, 몸무게 출력
25 165 60
>>> print(c['성적'][3]) // 딕셔너리 c의 성적 리스트 중 3번째 요소 출력
40
>>> c['나이'] = 26 // 변수 수정
>>> print(c)
{'나이': 26, '키': 165, '몸무게': 60, '성별': '여', '성적': [10, 20, 30, 40]}
<파이썬 응용>
- 고객 정보를 저장할 변수를 설계
- 고객 한 명에 대한 이름(문자열), 성별(문자열), 이메일주소(문자열), 출생년도(정수), 키(실수), 몸무게(실수)
- 다섯 명에 대한 고객 정보를 하나의 변수에 저장할 수 있도록 설계
1번
이름: 홍길동, 성별: 남, 이메일 주소: a@a.com, 출생년도: 1999, 키: 180, 몸무게: 66.5
2번
이름: 김길동, 성별: 여, 이메일 주소: b@a.com, 출생년도: 1998, 키: 185, 몸무게: 70
3번
이름: 남길동, 성별: 여, 이메일 주소: c@a.com, 출생년도: 2002, 키: 160, 몸무게: 55
4번
이름: 길길동, 성별: 남, 이메일 주소: d@a.com, 출생년도: 2010, 키: 185, 몸무게: 66
5번
이름: 서길동, 성별: 여, 이메일 주소: e@a.com, 출생년도: 2011, 키: 175, 몸무게: 46
- 리스트에 고객정보 생성
>>> 고객정보 = [
[홍길동, 남, a@a.com, 1999, 180, 66.5],
[김길동, 여, b@a.com, 1998, 185, 70],
[남길동, 여, c@a.com, 2002, 160, 55],
[길길동, 남, d@a.com, 2010, 185, 66],
[서길동, 여, e@a.com, 2011, 175, 46]
]
>>> print(고객정보[1][0], 고객정보[1][5])
// 1번째 고객정보 중 0번째 정보 출력, 1번째 고객 정보 중 5번째 정보 출
김길동 70
- 딕셔너리에 고객정보 생성
>>> 고객정보 = {
'이름': [홍길동, 김길동, 남길동, 길길동, 서길동]
'성별': ['남', '여', '여', '남', '여']
'이메일주소': ['a@a.com', 'b@a.com', 'c@a.com', 'd@a.com', 'e@a.com']
'출생년도': [1999, 1998, 2002, 2010, 2011]
'키': [180, 185, 160, 185, 175]
'몸무게': [66.5, 70, 55, 66, 46]
}
>>> print(고객정보['이름'][1], 고객정보['몸무게'][1])
// 고객정보 '이름' 중, 1번째 요소 출력, 고객정보 '몸무게' 중, 1번째 요소 출력
김길동 70
- 리스트에 딕셔너리로 고객정보 생성
>>> 고객정보 = [
{이름: 홍길동, 성별: 남, 이메일 주소: a@a.com, 출생년도: 1999, 키: 180, 몸무게: 66.5},
{이름: 김길동, 성별: 여, 이메일 주소: b@a.com, 출생년도: 1998, 키: 185, 몸무게: 70},
{이름: 남길동, 성별: 여, 이메일 주소: c@a.com, 출생년도: 2002, 키: 160, 몸무게: 55},
{이름: 길길동, 성별: 남, 이메일 주소: d@a.com, 출생년도: 2010, 키: 185, 몸무게: 66},
{이름: 서길동, 성별: 여, 이메일 주소: e@a.com, 출생년도: 2011, 키: 175, 몸무게: 46},
]
>>> print(고객정보[1]['이름'], 고객정보[1]['몸무게'])
// 1번째 고객정보 중, '이름' 출력, 1번째 고객정보 중 '몸무게' 출력
김길동 70
- 딕셔너리에 딕셔너리로 고객정보 생성
>>> 고객정보 = [
1: {이름: 홍길동, 성별: 남, 이메일 주소: a@a.com, 출생년도: 1999, 키: 180, 몸무게: 66.5},
2: {이름: 김길동, 성별: 여, 이메일 주소: b@a.com, 출생년도: 1998, 키: 185, 몸무게: 70},
3: {이름: 남길동, 성별: 여, 이메일 주소: c@a.com, 출생년도: 2002, 키: 160, 몸무게: 55},
4: {이름: 길길동, 성별: 남, 이메일 주소: d@a.com, 출생년도: 2010, 키: 185, 몸무게: 66},
5: {이름: 서길동, 성별: 여, 이메일 주소: e@a.com, 출생년도: 2011, 키: 175, 몸무게: 46},
]
'프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬 Python 실습 :: 반복문 for, while 실습 (1) | 2024.01.04 |
---|---|
파이썬 Python 실습 :: 조건문 if, else, elif 간단 정리 (0) | 2024.01.04 |
파이썬 Python 실습 :: 불(bool)과 비교, 논리 연산자 (2) | 2024.01.04 |
파이썬 Python 실습 :: print문 심화 (3) | 2024.01.03 |
파이썬 Python 실습 :: 변수 지정 (input) (1) | 2024.01.03 |