순서 ⭕️, 중복 ⭕️, 수정 ⭕️, 삭제 ⭕️
리스트 안에 리스트 가능
e = [1000, 10000, ['ace', 'base', 'captine']]
print(e[-1][1])
리스트를 슬라이싱하면 리스트가 나옴
c = [70, 80, 90]
print(c[0:2])
복사시, 같은 id를 가지게 되고 한쪽 변경되면 다른 한쪽도 변경되게 됨
c = [70, 80, 90]
temp = c
print(temp, c)
print(id(temp))
print(id(c))
1) 수정
c = [70, 80, 90]
c[0] = 4
print(c)
2) 리스트 넣기
c = [70, 80, 90]
c[1:2] = ['a', 'b', 'c']
print(c)
3) 리스트 안에 리스트 넣기
c = [70, 80, 90]
c[1] = ['a', 'b', 'c']
print(c)
4) 제거
del: 예약어(함수 x)
c = [70, 80, 90]
del c[2]
print(c)
1) append: 끝에 리스트 추가
a = [5, 2, 3, 1, 4]
a.append(10)
print(a)
2) insert: 원하는 곳에 리스트 추가
3) sort: 오름차순 정렬 ↔︎ reverse: 순서 반대로
a = [5, 2, 3, 1, 4, 10]
a.sort()
print(a)
4) remove: 삭제(위치 x, 값으로 삭제)
a = [5, 2, 3, 1, 4, 10]
a.remove(10)
print(a)
순서 ⭕️, 중복 ⭕️, 수정 ❌, 삭제 ❌(불변!)
1)원소가 하나일때는 끝에,
붙여야함
a = (1,)
2)괄호 없어도 튜플
a = 1, 2, 3
b = 5,
1) 팩킹: 튜플을 선언하는 것과 마찬가지로 묶는거
t = ('foo', 'bar', 'baz', 'qux')
2) 언팩킹: 묶여있던거 풀어서 각 순서에 맞는 원소에 대입
t = ('foo', 'bar', 'baz', 'qux')
(x1, x2, x3, x4) = t
print(x1, x2, x3, x4)
순서 ❌, 키 중복 ❌, 수정 ⭕️, 삭제 ⭕️
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'
)
딕셔너리 출력 방법:
1) print(a['name'])
2) print(a.get('name'))
✏️ but) 출력시 key값이 없는 값일때
ex)print(a['name1111'])
,print(a.get('name1111'))
1번은 오류가 나지만, 2번은 None값 나옴(get으로 가져오는게 안정적)
a = {'name': 'kim', 'phone': '01011112222', 'birth': '211111'}
a['address'] = 'Seoul'
a.update(birth='201111')
순서 ❌, 중복 ❌, 수정 ⭕️, 삭제 ⭕️
a = set([1, 2, 3, 4])
b = {'foo', 'bar', baz'}
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))
5) 부분 집합 확인
print(s1.issubset(s2))
1) 추가
s1 = set([1, 2, 3, 4, 5, 6])
s1.add(7)
2) 제거
s1.remove(6)
✏️ 없는거 지우려고 하면 에러(=예외)s1.ddiscard(6)
✏️ 없는거 지우려고 해도 에러❌