[ python] 리스트, 튜플, 딕셔너리, 집합

ljkgb·2021년 1월 23일
0

Python

목록 보기
4/20
post-thumbnail

리스트

1. 리스트 특성

순서 ⭕️, 중복 ⭕️, 수정 ⭕️, 삭제 ⭕️

2. 인덱싱

리스트 안에 리스트 가능

e = [1000, 10000, ['ace', 'base', 'captine']]
print(e[-1][1]) 
  • 결과: base

3. 슬라이싱

리스트를 슬라이싱하면 리스트가 나옴

c = [70, 80, 90]
print(c[0:2])
  • 결과: [70, 80]

4. Identity(id)

복사시, 같은 id를 가지게 되고 한쪽 변경되면 다른 한쪽도 변경되게 됨

c = [70, 80, 90]
temp = c
print(temp, c)
print(id(temp))
print(id(c))

5. 수정, 삭제

1) 수정

c = [70, 80, 90]
c[0] = 4
print(c)
  • 결과: [4, 80, 90]

2) 리스트 넣기

c = [70, 80, 90]
c[1:2] = ['a', 'b', 'c']
print(c)
  • 결과: [70, 'a', 'b', 'c', 90]

3) 리스트 안에 리스트 넣기

c = [70, 80, 90]
c[1] = ['a', 'b', 'c']
print(c)
  • 결과: [70, ['a', 'b', 'c'], 90]

4) 제거
del: 예약어(함수 x)

c = [70, 80, 90]
del c[2]
print(c)
  • 결과: [70, 80]

6. 리스트 함수

1) append: 끝에 리스트 추가

a = [5, 2, 3, 1, 4]
a.append(10)
print(a)
  • 결과: [5, 2, 3, 1, 4, 10]

2) insert: 원하는 곳에 리스트 추가

3) sort: 오름차순 정렬 ↔︎ reverse: 순서 반대로

a = [5, 2, 3, 1, 4, 10]
a.sort()
print(a)
  • 결과: [1, 2, 3, 4, 5, 10]

4) remove: 삭제(위치 x, 값으로 삭제)

a = [5, 2, 3, 1, 4, 10]
a.remove(10)
print(a)
  • 결과: [1, 2, 3, 4, 5]

튜플

1. 튜플 특성

순서 ⭕️, 중복 ⭕️, 수정 ❌, 삭제 ❌(불변!)

2. 선언

1)원소가 하나일때는 끝에, 붙여야함
a = (1,)
2)괄호 없어도 튜플
a = 1, 2, 3
b = 5,

3. 팩킹 & 언팩킹(packing & unpacking)

1) 팩킹: 튜플을 선언하는 것과 마찬가지로 묶는거
t = ('foo', 'bar', 'baz', 'qux')
2) 언팩킹: 묶여있던거 풀어서 각 순서에 맞는 원소에 대입

t = ('foo', 'bar', 'baz', 'qux')
(x1, x2, x3, x4) = t
print(x1, x2, x3, x4)
  • 결과: foo bar baz qux

딕셔너리

1. 딕셔너리 특성

순서 ❌, 키 중복 ❌, 수정 ⭕️, 삭제 ⭕️

2. 선언

f방식 많이 사용

a = {'name': 'kim', 'phone': '01011112222', 'birth': '211111'}
b = {0: 'Hello Python'}
c = {'arr': [1, 2, 3]}
d = {
    'name': 'nickname',
    'grade': 'a'
}
e = dict([
    ('name', 'nickname'),
    ('grade', 'a')
])
f = dict(
    name='nickname',
    grade='a'
)

3. 출력

딕셔너리 출력 방법:
1) print(a['name'])
2) print(a.get('name'))

✏️ but) 출력시 key값이 없는 값일때
ex) print(a['name1111']), print(a.get('name1111'))
1번은 오류가 나지만, 2번은 None값 나옴(get으로 가져오는게 안정적)

4. 딕셔너리 추가, 수정

a = {'name': 'kim', 'phone': '01011112222', 'birth': '211111'}
a['address'] = 'Seoul'
a.update(birth='201111')

5. keys, values, items: 반복문(iter) 사용 가능


집합

1. 집합 특성

순서 ❌, 중복 ❌, 수정 ⭕️, 삭제 ⭕️

2. 선언

a = set([1, 2, 3, 4])
b = {'foo', 'bar', baz'}

3. 집합 자료형 활용

1) 교집합

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

print(s1 & s2)  #함수: s1.intersection(s2)

2) 합집합
print(s1 | s2)
함수: s1.union(s2)

3) 차집합
print(s1 - s2)
함수: s1.difference(s2)

4) 중복 원소 확인
print(s1.isdisjoint(s2))

  • 교집합 있으면 = False
    교집합 없으면 = True

5) 부분 집합 확인
print(s1.issubset(s2))

  • 부분집합이면 = True
    부분집합 아니면 = False

4. 데이터 추가, 제거

1) 추가

s1 = set([1, 2, 3, 4, 5, 6])

s1.add(7)

2) 제거

  • s1.remove(6) ✏️ 없는거 지우려고 하면 에러(=예외)
  • s1.ddiscard(6) ✏️ 없는거 지우려고 해도 에러❌
profile
🐹

0개의 댓글