제2 장 목록 과 원 조
Python 에서 가장 기본 적 인 데이터 구 조 는 시퀀스 (sequence) 입 니 다.서열 은 모두 6 가지 유형 이 있 는데 본 장 은 두 가지 만 중점적으로 토론 한다. 목록 과 원 조 이다.이 장의 대체적인 구 조 는 다음 과 같다.
모든 서열 은 특정한 조작 을 할 수 있 고 Python 은 길 이 를 계산 하고 최대 와 최소 요 소 를 찾 는 등 기능 을 가 진 내부 건설 방법 도 가지 고 있다.
인덱스
서열 의 모든 요 소 는 번 호 를 가 진 것 이 고 0 은 첫 번 째 부터 시작 하 는 것 을 나타 내 며 - 1 은 마지막 부터 시작 하 는 것 을 나타 낸다.문자열 은 문자 로 구 성 된 시퀀스 입 니 다:
>>> greeting = "Hello"
>>> greeting[0]
'H'
>>> "Hello"[-1]
'o'
이어서 이 책의 실례 는 작은 프로그램 을 주 었 다.연습 개인 으로 간단하게 요 구 를 추상 화 할 수 있 습 니 다. 만약 당신 도 나 처럼 방금 입문 했다 면 Python 은 스스로 편집 해 볼 수 있 습 니 다.
사용자 에 게 년, 월 (1 - 12), 일 (1 - 31) 을 입력 하고 모양 에 따라: September 12th, 2014 의 형식 으로 구 축 된 문자열 을 출력 하도록 요구 합 니 다.
다음은 자신 이 구축 한 코드 와 해당 하 는 입 출력 결과 입 니 다.
year = raw_input("Year:")
month = raw_input("Month(1-12):")
day = raw_input("Day(1-31):")
monthes = [
"January",
"February",
"March",
"April",
"Ma",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
]
#
days = ['st', 'rd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th'];
print monthes[int(month) - 1] + ' ' + day + days[int(day) - 1] + ',' + year
실행 하면 다음 과 같은 결 과 를 볼 수 있 습 니 다.
$ python sequencePractise.py
Year:2015
Month(1-12):1
Day(1-31):5
January 5th,2015
튜 토리 얼 의 코드 에 비해 개선 할 수 있 는 것 이 있 습 니 다 (1) 영어 표현 습관 에서 1 - 3 의 접 두 사 는 st, nd, rd 이 고 나머지 는 th 입 니 다.예 를 들 어 1st, 12nd, 23rd, 15th.(2) 아직 학습 지점 (if else) 이 없 기 때문에 31 길이 의 원 그룹 을 접미사 로 사용 합 니 다.Python 에서 배열 의 조합 을 사용 할 수 있 습 니 다. (자바 와 자바 스 크 립 트 에 비해 신선 한 것 입 니 다) 다음 과 같 습 니 다.
days = ['st', 'nd', 'rd'] + 7*['th']+['st', 'nd', 'rd'] + 7*['th']+['st', 'nd', 'rd'] + 7*['th']+['st'] + ['st']
조각 을 나누다쉽게 말 하면 시작 색인 을 지정 하고 색인 을 끝 낸 다음 에 하위 서열 을 얻 는 작업 입 니 다.Python 이 제공 하 는 분할 작업 이 매우 유연 하기 때문에 하나의 소개 가 번 거 롭 지 않 습 니 다. 아래 에 책 속 의 예 를 열거 하 겠 습 니 다.먼저 입력 을 보고 출력 을 추측 한 다음 에 실제 조작 하거나 결 과 를 보고 증명 할 수 있 습 니 다.
> numbers = [1,2,3,4,5,6,7,8,9,10]
> numbers[3:6]
[4, 5, 6] # 6
> numbers[-3:-1]
[8, 9]
> numbers[-3:0]
[] #
> numbers[-3:]
[8,9,10]
> numbers[:-3]
[1,2,3,4,5,6,7]
> numbers[:]
[1,2,3,4,5,6,7,8,9,10] #
> numbers[0:10:2]
[1, 3, 5, 7, 9]#
> numbers[8:3:-1]
[9, 8, 7, 6, 5]# ,
> numbers[0:10:-2]
[]
> numbers[8::-2]
[9, 7, 5, 3, 1]
> numbers[5::-2]
[6, 4, 2]
> numbers[:5:-2]
[10,8]
# , 。
: 。
서열 더하기
> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
> "Hello" + " World"
"Hello World"
> "Hello" + [1,2,3]
# :error, ,
곱셈
숫자 곱 하기 서열 은 새로운 서열 을 만 들 고 새로운 서열 에서 원래 의 내용 이 몇 번 반복 된다.
> "Python"*3
"PythonPythonPython"
> [42]*5
[42, 42, 42, 42, 42]
멤버 포함 여부
in 연산 자 를 사용 하면 시퀀스 에 포함 되 어 있 는 지 확인 할 수 있 습 니 다: > permission = 'rw' > 'w' in permission True
> users = ['admin', 'root']
> raw_input('Enter your name:') in users
Enter your name:admin
True
길이, 최소 값, 최대 값
>>> numbers = [823, 428, 105]
>>> len(numbers)
3
>>> max(numbers)
823
>>> min(numbers)
105
>>> max(6,3,9,5)
9 #max、min
리스트
목록 은 가 변 적 이 고 유용 하고 전문 적 인 방법 이 많다.
list 함수
함 수 는 문자열 만 사용 할 수 있 는 것 이 아니 라 모든 종류의 시퀀스 를 사용 할 수 있 습 니 다.다음 문자열 에 따라 목록 을 만 드 는 예:
>>> list("Hello")
['H', 'e', 'l', 'l', 'o']
기본 목록 작업
목록 은 시퀀스 의 하나 입 니 다. 모든 시퀀스 의 작업 은 목록 에 사 용 됩 니 다. 목록 이 바 뀔 수 있 는 것 과 달리 이 부분 은 목록 을 바 꾸 는 방법 을 소개 합 니 다. 요소 할당, 요소 삭제, 블록 할당, 목록 방법 (모든 목록 방법 이 목록 을 바 꿀 수 있 는 것 은 아 닙 니 다).
>>> x=[1,1,1]
>>> x[1]=2
>>> x
[1, 2, 1]
>>> names = ['John', 'Swift', 'Skylar']
>>> del names[1]
>>> names
['John', 'Skylar']
>>> name = list('Perl')
>>> name[2:] = list('ar')
>>> name
['P', 'e', 'a', 'r']
>>> name = list('Perl')
>>> name[1:] = list('ython')
>>> name
['P', 'y', 't', 'h', 'o', 'n']
# 。
>>> numbers = [1,5]
>>> numbers[1:1] = [2,3,4]
>>> numbers
[1, 2, 3, 4, 5]
#
>>> numbers = [1,2,3,4,5]
>>> numbers[1:4]=[]
>>> numbers
[1, 5]
# 。 、 。
목록 방법
> [1,2,3].append(4)
[1,2,3,4]
> ['to', 'be', 'or', 'not', 'to', 'be'].count('to')
2
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)
a
[1, 2, 3, 4, 5, 6]
# a , a+b 。
물론 이 방법 은 다음 과 같은 두 가지 대체 방법 이 있 을 수 있다.
> a = a + b
> a[len(a):] = b
['to', 'be', 'or', 'not', 'to', 'be'].index('or')
2
>>> numbers = [1, 2, 3, 4]
>>> numbers.insert(2, 'three')
>>> numbers
[1, 2, 'three', 3, 4]
위의 조작 도 절편 조작 과 같다.
>>> numbers[3:3]=['three']
>>> numbers = [1,2,3]
>>> numbers.pop()
3
>>> numbers
[1, 2]
스 택 이라는 구 조 를 실현 하면 결합 하여 사용 할 수 있 습 니 다 (append 와 pop 이라는 두 가지 방법 으로 이 루어 집 니 다).대기 열 을 실현 하면 pop 과 append 에 0 으로 표 시 된 아래 표 시 를 첫 번 째 매개 변수 로 추가 할 수 있 습 니 다.
>>> x = ['to', 'be', 'or', 'not', 'to', 'be']
>>> x.remove('be')
>>> x
['to', 'or', 'not', 'to', 'be']
위 에서 제거 한 것 이 첫 번 째 일치 항목 입 니 다.
>>> x = [1, 2, 3]
>>> x.reverse()
>>> x
[3, 2, 1]
>>> x = [4,7,2,1,7,9]
>>> x.sort()
>>> x
[1, 2, 4, 7, 7, 9]
이 책 은 위 와 같은 절대 다수의 방법 에서 (1) 값 을 되 돌려 줄 지 (2) 목록 자 체 를 바 꿀 지 여 부 를 언급 했다.개인 적 으로 사용 경험 이 부족 하기 전에 이런 것들 을 기억 하 는 것 은 실제 적 인 의미 가 없다 고 생각 합 니 다. 진정 으로 사용 할 때 명령 행 을 통 해 간단 한 테스트 를 하면 알 수 있 습 니 다.
>cmp(94, 39)
1
원본 그룹: 가 변 시퀀스
다음 과 같이 원 그룹의 상용 표현법 이 나 왔 습 니 다.
>1, 2, 3
(1, 2, 3)
>(1, 2, 3)
(1, 2, 3)
>()
()
> 42,
(42,)
> (42,) * 3
(42, 42, 42)
tuple 함수
tuple 은 시퀀스 를 원 그룹 으로 바 꾸 는 함수 로 목록 의 전체 list 와 유사 합 니 다.
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
모듈 기본 동작
생 성, 접근, 절편 작업 은 모두 목록 과 유사 합 니 다.
원조 존재의 의미
일반적으로 목록 은 절대 다수의 수 요 를 만족 시 킬 수 있다.책 에서 언급 한 원조 존재의 의 미 는 아직 깊이 체득 되 지 않 아 잠시 상관 하지 않 는 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.