파 이 썬 소 백 에서 소 까지 - 9 장 데이터 구조
14926 단어 python 흰색 에서 큰 소 까지
9.1 원조
9.1.1 시퀀스
서열 은 교체 가능 하고 요소 가 질서 가 있 으 며 반복 적 으로 나타 날 수 있 는 데이터 구조 이다.교체 가능 (iterable), 이 단어 와 영어 단 어 를 기억 하 는 것 이 중요 합 니 다.python 이 틀 렸 습 니 다. 이 단 어 를 보면 어디 가 틀 렸 는 지 알 수 있 습 니 다.교체 가능 은 멤버 들 이 한 번 돌아 갈 수 있 는 대상 을 말한다.시퀀스 는 목록, 문자열, 모듈, 범위 (range) 와 바이트 시퀀스 (bytes) 를 포함한다.여기 서열 이 있다 고 가정 해 봐.
a = ‘hello’
시퀀스 에 대해 다음 과 같은 조작 을 할 수 있 습 니 다.
색인
9.1.2 원본 그룹 만 들 기
원 조 는 가 변 적 인 서열 (중점) 이다.다음 방식 은 모두 원 그룹 을 만 들 었 습 니 다.
a=1,2,3,4
a=(1,2,3,4)
a=tuple([1,2,3,4]) #
a=(1,) # , , int
a=() #
9.1.3 액세스 모듈
색인 방문 을 통 해 슬라이스 도 할 수 있 습 니 다. 여기 서 중점 은 가방 을 뜯 는 것 입 니 다. 가방 을 유연 하 게 응용 하면 복잡 한 작업 을 단순화 할 수 있 습 니 다.
>>> a = (' ',' ','35 ')
>>> name, gender, age = a # a
>>> name
' '
>>> gender
' '
>>> age
'35 '
9.2 리스트
목록 은 가 변 시퀀스 로 목록 의 요 소 를 추가, 삽입, 삭제, 교체 할 수 있 습 니 다.
9.2.1 목록 생 성
아래 방식 으로 목록 을 만 들 었 습 니 다.
a=[]
a=[1,2,3]
a=list((1,2,3))
9.2.2 추가 원소
하나의 요 소 를 추가 합 니 다. append () 를 사용 합 니 다. 추가 목록 과 같이 "+" 또는 extend () 를 사용 할 수 있 습 니 다.
>>> a = ['a','b']
>>> a.append('c')
>>> a
['a', 'b', 'c']
>>> a + ['123']
['a', 'b', 'c', '123']
>>> a.extend('123') # ,extend() ,
>>> a
['a', 'b', 'c', '1', '2', '3']
>>> a.extend(['123'])
>>> a
['a', 'b', 'c', '1', '2', '3', '123']
>>>
9.2.3 요소 삽입
insert (i, x): 색인 i 에 요소 x 삽입
>>> a = [1,2,3]
>>> a.insert(1,0)
>>> a
[1, 0, 2, 3]
9.2.4 대체 요소
색인 요소 바 꾸 기
>>> a=[1,2,3]
>>> a[-1]=0
>>> a
[1, 2, 0]
>>>
9.2.5 요소 삭제
remove () 와 pop () list. remove (x) 는 목록 에서 왼쪽 에서 오른쪽으로 첫 번 째 x 를 찾 아 삭제 합 니 다. 찾 지 못 하면 잘못된 list. pop (i) 에서 색인 이 i 인 요 소 를 삭제 하고 되 돌아 갑 니 다. i 를 생략 할 때 기본 값 으로 마지막 요 소 를 삭제 합 니 다.
9.2.6 기타 상용 방법
dir (list) 로 다른 방법 을 볼 수 있 습 니 다 sort (): 목록 에 있 는 요소 정렬 reverse (): 목록 을 거꾸로 copy (): 목록 을 복사 합 니 다 clear (): 목록 을 비 웁 니 다 count (x): x 가 목록 에 나타 난 횟수 를 되 돌려 줍 니 다.
9.2.7 리스트 유도 식
아주 유용 한 특수 표현 식 입 니 다. 큰 신의 코드 를 보 세 요. 대부분 이런 것 이 고 내장 되 어 있어 서 어 지 럽 습 니 다.
>>> print([x**2 for x in range(10) if x%2 ==0])
[0, 4, 16, 36, 64]
9.3 집합
집합 은 교체 가능 하고 무질서 하 며 요소 * * 중복 되 지 않 음 * * 의 데이터 구조 입 니 다.
9.3.1 가 변 집합 생 성
공백 집합 을 만 드 는 데 a = {} 을 만 들 수 없습니다. 사전 을 만 드 는 것 이기 때 문 입 니 다.
a = set()
a = {1,2,3}
a = set('aab') ⇒ {'a','b'}
a = set([1,2,2]) ==> {1,2}
9.3.2 가 변 집합 수정
add (x): 요소 x remove (x) 추가: 요소 x 를 삭제 하고 존재 하지 않 으 면 discard (x) 를 잘못 던 집 니 다. 같은 위 에 존재 하지 않 으 면 pop () 을 잘못 던 지지 않 습 니 다. 집합 에 문자열 이 있 으 면 무 작위 로 삭제 하고 되 돌려 줍 니 다. 숫자 라면 기본 값 은 첫 번 째 부터 삭제 합 니 다.
9.3.3 옮 겨 다 니 며 집합
집합
9.3.4 불가 변 집합
frozenset () 을 사용 하여 변 하지 않 는 집합 을 만 들 고 집합 은 수정 할 수 없습니다.어떤 상황 에서 응용 할 지 모 르 겠 어 요.
9.3.5 집합 유도 식
목록 유도 식 과 마찬가지 로 집합 특성 상 출력 결과 가 중복 되 지 않 는 다 는 점 이 장점 이다.
9.4 사전
{key:value}
9.4.1 사전 만 들 기
dict () 를 사용 하여 사전 을 만 들 때 괄호 안에 하나의 인자 만 넣 을 수 있 음 을 주의해 야 합 니 다.
d = {1:'Jack',2:'Tom'}
d=dict({1:'Jack',2:'Tom'})
d=dict([(1,'Jack'),(2,'Tom')])
d=dict(s1='Jack',s2='Tom') # key=value ,key ,'100','s100',100,
9.4.2 사전 수정
dict[key] = newvalue #
del dict[key] # key
dict.pop(key) # key , key
9.4.3 사전 방문
dict.get(key) # key
dict.items() # key,value
dict.keys() # key
dict.values() #
9.4.4 사전 옮 겨 다 니 기
사전 을 옮 겨 다 니 며 실제로 dict. keys (), dict. values (), dict. items () 를 옮 겨 다 닙 니 다.
9.4.5 사전 유도 식
{k:v for k,v in dict.items() if v%2==0}