꾸준히 하고싶은 개발자

chapter03 본문

python/chap03

chapter03

프라우스 2022. 9. 5. 22:35

화면 입출력과 리스트

사용자 인터페이스

컴퓨터에 명령을 입력할 때 사용하는 환경을 사용자 인터페이스(user interface)라고 한다.

사용자 인터페이스에는 GUI(Graphical User Interface) 와 CLI(Command Line Interface) 가 있다. 일반적으로 GUI 환경에서는 아이콘을 하나 클릭하면 그에 대한 명령이 실행된다. CLI는 마우스의 클릭이 아닌 키보드만으로 명령을 입력하는 환경이다.

input( ) 함수: 표준 입력 함수로, 사용자가 문자열을 콘솔 창에 입력할 수 있게 해 준다.

사용자로부터 키를 입력받은 후 표준제중으로 환산해서 출력하는 프로그램을 작성 출력예> 키를 입력해 주세요: 170 입력하는 170cm에 대한 표준체중은 63kg입니다. 환산방법((키-100)*0.9)

리스트의 이해

리스트(list): 하나의 변수에 여러 값을 할당하는 자료형이다. 파이썬에서는 리스트처럼 여러 데이터를 하나의 변수에 할당하는 기법을 시퀀스 자료형이라고 한다. 시퀀스 자료형은 여러 자료를 순서대로 넣는다는 뜻이다. 리스트는 하나의 자료형으로만 저장하지 않고, 정수형이나 실수형 같은 다양한 자료형을 포함할 수 있다.

indexing: 리스트에 있는 값에 접근하기 위해, 이 값의 상대적인 주소를 사용하는 것이다.

slicing: 리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 반환한다.

슬라이싱 기본 문법

변수명[시작인덱스:마지막인덱스]

파이썬의 리스트에서 ‘마지막 인덱스 - 1’까지만 출력된다. 만약 한 번 이상 리스트 변수를 사용하면 마지막 인덱스가 다음 리스트의 시작 인덱스가 되어 코드를 작성할 때 조금 더 쉽게 이해할 수 있다는 장점이 있다.

리버스인덱스

리스트에는 인덱스를 마지막 값부터 시작하는 리버스 인덱스 기능이 있다.

인덱스 범위를 넘어가는 슬라이싱

인덱스를 따로 넣지 않고 print(cities[:])과 같이 콜론(:)을 넣으면 cities 변수의 모든 값을 다 반환한다. 슬라이싱에서는 인덱스를 넘어서거나 입력하지 않더라도 자동으로 시작 인덱스와 마지막 인덱스로 지정된다

증가값(step)

슬라이싱에서는 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 넣을 수 있다. 증가값은 한 번에 건너뛰는 값의 개수이다.

리스트연산

덧셈 연산 : 덧셈 연산을 하더라도 따로 어딘가 변수에 할당해 주지 않으면 기존 변수는 변화가 없다

곱셈 연산 : 리스트의 곱셈 연산은 기준 리스트에 n을 곱했을 때, 같은 리스트를 n배만큼 늘려 준다.

in 연산 : 포함 여부를 확인하는 연산으로, 하나의 값이 해당 리스트에 들어 있는지 확인할 수 있다.

리스트 추가 및 삭제

append( ) 함수 : 새로운 값을 기존 리스트의 맨 끝에 추가

extend( ) 함수 : 새로운 리스트를 기존 리스트에 추가

insert( ) 함수 : 기존 리스트의 i번째 인덱스에 새로운 값을 추가, i번째 인덱스를 기준으로 뒤쪽의 인덱스가 하나씩 밀림.

remove( ) 함수 : 리스트 내의 특정 값을 삭제.

인덱스의 재할당 : 인덱스에 새로운 값을 할당한다. 인덱스 삭제 : del 함수를 사용한다.

패킹과 언패킹

패킹(packing): 한 변수에 여러 개의 데이터를 할당하는 것. 언패킹(unpacking): 한 변수의 데이터를 각각의 변수로 반환하는 것.

이차원 리스트

리스트를 효율적으로 활용하기 위해 여러 개의 리스트를 하나의 변수에 할당하는 이차원 리스트를 사용할 수 있다.

이차원 리스트를 하나의 변수로 표현하기 위해서는 다음과 같이 코드를 작성하면 된다 이차원 리스트에 인덱싱하여 값에 접근하기 위해서는 다음 코드와 같이 대괄호 2개를 사용한다.

리스트의 메모리 저장

파이썬은 리스트를 저장할 때 값 자체가 아니라, 값이 위치한 메모리 주소(reference)를 저장한다.

==은 값을 비교하는 연산이고, is는 메모리의 주소를 비교하는 연산이다. 아래 코드에서 a와 b는 값은 같지만, 메모리의 저장 주소는 다른 것이다.

ex)a=300

b=300

a is b

false

a==b

true가 나온다.

이전 코드와 다르게 is와 == 연산자는 모두 True를 반환한다. 그렇다면 a와 b의 메모리 주소는 같은 것일까? 이것은 파이썬의 정수형 저장 방식의 특성 때문이다. 파이썬은 인터프리터가 구동될 때, -5부터 256까지의 정수값을 특정 메모리 주소에 저장한다. 그리고 해당 숫자를 할당하려고 하면 해당 변수는 그 숫자가 가진 메모리 주소로 연결한다.

리스트는 기본적으로 값을 연속으로 저장하는 것이 아니라, 값이 있는 주소를 저장하는 방식이다.

다양한 형태의 변수가 하나의 리스트에 들어갈수있다.

a=[”color”,1,2]

기존 변수들과 함께 리스트 안에 다른 리스트를 넣을 수 있다. 흔히 이를 중첩 리스트라고 한다. 이러한 특징은 파이썬의 리스트가 값이 아닌 메모리의 주소를 저장해 메모리에 새로운 값을 할당하는 데 있어 매우 높은 자유도를 보장하므로 가능하다.사용자 인터페이스

컴퓨터에 명령을 입력할 때 사용하는 환경을 사용자 인터페이스(user interface)라고 한다.

사용자 인터페이스에는 GUI(Graphical User Interface) 와 CLI(Command Line Interface) 가 있다. 일반적으로 GUI 환경에서는 아이콘을 하나 클릭하면 그에 대한 명령이 실행된다. CLI는 마우스의 클릭이 아닌 키보드만으로 명령을 입력하는 환경이다.

input( ) 함수: 표준 입력 함수로, 사용자가 문자열을 콘솔 창에 입력할 수 있게 해 준다.

사용자로부터 키를 입력받은 후 표준제중으로 환산해서 출력하는 프로그램을 작성 출력예> 키를 입력해 주세요: 170 입력하는 170cm에 대한 표준체중은 63kg입니다. 환산방법((키-100)*0.9)

리스트의 이해

리스트(list): 하나의 변수에 여러 값을 할당하는 자료형이다. 파이썬에서는 리스트처럼 여러 데이터를 하나의 변수에 할당하는 기법을 시퀀스 자료형이라고 한다. 시퀀스 자료형은 여러 자료를 순서대로 넣는다는 뜻이다. 리스트는 하나의 자료형으로만 저장하지 않고, 정수형이나 실수형 같은 다양한 자료형을 포함할 수 있다.

indexing: 리스트에 있는 값에 접근하기 위해, 이 값의 상대적인 주소를 사용하는 것이다.

slicing: 리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 반환한다.

슬라이싱 기본 문법

변수명[시작인덱스:마지막인덱스]

파이썬의 리스트에서 ‘마지막 인덱스 - 1’까지만 출력된다. 만약 한 번 이상 리스트 변수를 사용하면 마지막 인덱스가 다음 리스트의 시작 인덱스가 되어 코드를 작성할 때 조금 더 쉽게 이해할 수 있다는 장점이 있다.

리버스인덱스

리스트에는 인덱스를 마지막 값부터 시작하는 리버스 인덱스 기능이 있다.

인덱스 범위를 넘어가는 슬라이싱

인덱스를 따로 넣지 않고 print(cities[:])과 같이 콜론(:)을 넣으면 cities 변수의 모든 값을 다 반환한다. 슬라이싱에서는 인덱스를 넘어서거나 입력하지 않더라도 자동으로 시작 인덱스와 마지막 인덱스로 지정된다

증가값(step)

슬라이싱에서는 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 넣을 수 있다. 증가값은 한 번에 건너뛰는 값의 개수이다.

리스트연산

덧셈 연산 : 덧셈 연산을 하더라도 따로 어딘가 변수에 할당해 주지 않으면 기존 변수는 변화가 없다

곱셈 연산 : 리스트의 곱셈 연산은 기준 리스트에 n을 곱했을 때, 같은 리스트를 n배만큼 늘려 준다.

in 연산 : 포함 여부를 확인하는 연산으로, 하나의 값이 해당 리스트에 들어 있는지 확인할 수 있다.

리스트 추가 및 삭제

append( ) 함수 : 새로운 값을 기존 리스트의 맨 끝에 추가

extend( ) 함수 : 새로운 리스트를 기존 리스트에 추가

insert( ) 함수 : 기존 리스트의 i번째 인덱스에 새로운 값을 추가, i번째 인덱스를 기준으로 뒤쪽의 인덱스가 하나씩 밀림.

remove( ) 함수 : 리스트 내의 특정 값을 삭제.

인덱스의 재할당 : 인덱스에 새로운 값을 할당한다. 인덱스 삭제 : del 함수를 사용한다.

패킹과 언패킹

패킹(packing): 한 변수에 여러 개의 데이터를 할당하는 것. 언패킹(unpacking): 한 변수의 데이터를 각각의 변수로 반환하는 것.

이차원 리스트

리스트를 효율적으로 활용하기 위해 여러 개의 리스트를 하나의 변수에 할당하는 이차원 리스트를 사용할 수 있다.

이차원 리스트를 하나의 변수로 표현하기 위해서는 다음과 같이 코드를 작성하면 된다 이차원 리스트에 인덱싱하여 값에 접근하기 위해서는 다음 코드와 같이 대괄호 2개를 사용한다.

리스트의 메모리 저장

파이썬은 리스트를 저장할 때 값 자체가 아니라, 값이 위치한 메모리 주소(reference)를 저장한다.

==은 값을 비교하는 연산이고, is는 메모리의 주소를 비교하는 연산이다. 아래 코드에서 a와 b는 값은 같지만, 메모리의 저장 주소는 다른 것이다.

ex)a=300

b=300

a is b

false

a==b

true가 나온다.

이전 코드와 다르게 is와 == 연산자는 모두 True를 반환한다. 그렇다면 a와 b의 메모리 주소는 같은 것일까? 이것은 파이썬의 정수형 저장 방식의 특성 때문이다. 파이썬은 인터프리터가 구동될 때, -5부터 256까지의 정수값을 특정 메모리 주소에 저장한다. 그리고 해당 숫자를 할당하려고 하면 해당 변수는 그 숫자가 가진 메모리 주소로 연결한다.

리스트는 기본적으로 값을 연속으로 저장하는 것이 아니라, 값이 있는 주소를 저장하는 방식이다.

다양한 형태의 변수가 하나의 리스트에 들어갈수있다.

a=[”color”,1,2]

기존 변수들과 함께 리스트 안에 다른 리스트를 넣을 수 있다. 흔히 이를 중첩 리스트라고 한다. 이러한 특징은 파이썬의 리스트가 값이 아닌 메모리의 주소를 저장해 메모리에 새로운 값을 할당하는 데 있어 매우 높은 자유도를 보장하므로 가능하다.컴퓨터에 명령을 입력할 때 사용하는 환경을 사용자 인터페이스(user interface)라고 한다.

사용자 인터페이스에는 GUI(Graphical User Interface) 와 CLI(Command Line Interface) 가 있다. 일반적으로 GUI 환경에서는 아이콘을 하나 클릭하면 그에 대한 명령이 실행된다. CLI는 마우스의 클릭이 아닌 키보드만으로 명령을 입력하는 환경이다.

input( ) 함수: 표준 입력 함수로, 사용자가 문자열을 콘솔 창에 입력할 수 있게 해 준다.

사용자로부터 키를 입력받은 후 표준제중으로 환산해서 출력하는 프로그램을 작성 출력예> 키를 입력해 주세요: 170 입력하는 170cm에 대한 표준체중은 63kg입니다. 환산방법((키-100)*0.9)

리스트의 이해

리스트(list): 하나의 변수에 여러 값을 할당하는 자료형이다. 파이썬에서는 리스트처럼 여러 데이터를 하나의 변수에 할당하는 기법을 시퀀스 자료형이라고 한다. 시퀀스 자료형은 여러 자료를 순서대로 넣는다는 뜻이다. 리스트는 하나의 자료형으로만 저장하지 않고, 정수형이나 실수형 같은 다양한 자료형을 포함할 수 있다.

indexing: 리스트에 있는 값에 접근하기 위해, 이 값의 상대적인 주소를 사용하는 것이다.

slicing: 리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 반환한다.

슬라이싱 기본 문법

변수명[시작인덱스:마지막인덱스]

파이썬의 리스트에서 ‘마지막 인덱스 - 1’까지만 출력된다. 만약 한 번 이상 리스트 변수를 사용하면 마지막 인덱스가 다음 리스트의 시작 인덱스가 되어 코드를 작성할 때 조금 더 쉽게 이해할 수 있다는 장점이 있다.

리버스인덱스

리스트에는 인덱스를 마지막 값부터 시작하는 리버스 인덱스 기능이 있다.

인덱스 범위를 넘어가는 슬라이싱

인덱스를 따로 넣지 않고 print(cities[:])과 같이 콜론(:)을 넣으면 cities 변수의 모든 값을 다 반환한다. 슬라이싱에서는 인덱스를 넘어서거나 입력하지 않더라도 자동으로 시작 인덱스와 마지막 인덱스로 지정된다

증가값(step)

슬라이싱에서는 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 넣을 수 있다. 증가값은 한 번에 건너뛰는 값의 개수이다.

리스트연산

덧셈 연산 : 덧셈 연산을 하더라도 따로 어딘가 변수에 할당해 주지 않으면 기존 변수는 변화가 없다

곱셈 연산 : 리스트의 곱셈 연산은 기준 리스트에 n을 곱했을 때, 같은 리스트를 n배만큼 늘려 준다.

in 연산 : 포함 여부를 확인하는 연산으로, 하나의 값이 해당 리스트에 들어 있는지 확인할 수 있다.

리스트 추가 및 삭제

append( ) 함수 : 새로운 값을 기존 리스트의 맨 끝에 추가

extend( ) 함수 : 새로운 리스트를 기존 리스트에 추가

insert( ) 함수 : 기존 리스트의 i번째 인덱스에 새로운 값을 추가, i번째 인덱스를 기준으로 뒤쪽의 인덱스가 하나씩 밀림.

remove( ) 함수 : 리스트 내의 특정 값을 삭제.

인덱스의 재할당 : 인덱스에 새로운 값을 할당한다. 인덱스 삭제 : del 함수를 사용한다.

패킹과 언패킹

패킹(packing): 한 변수에 여러 개의 데이터를 할당하는 것. 언패킹(unpacking): 한 변수의 데이터를 각각의 변수로 반환하는 것.

이차원 리스트

리스트를 효율적으로 활용하기 위해 여러 개의 리스트를 하나의 변수에 할당하는 이차원 리스트를 사용할 수 있다.

이차원 리스트를 하나의 변수로 표현하기 위해서는 다음과 같이 코드를 작성하면 된다 이차원 리스트에 인덱싱하여 값에 접근하기 위해서는 다음 코드와 같이 대괄호 2개를 사용한다.

리스트의 메모리 저장

파이썬은 리스트를 저장할 때 값 자체가 아니라, 값이 위치한 메모리 주소(reference)를 저장한다.

==은 값을 비교하는 연산이고, is는 메모리의 주소를 비교하는 연산이다. 아래 코드에서 a와 b는 값은 같지만, 메모리의 저장 주소는 다른 것이다.

ex)a=300

b=300

a is b

false

a==b

true가 나온다.

이전 코드와 다르게 is와 == 연산자는 모두 True를 반환한다. 그렇다면 a와 b의 메모리 주소는 같은 것일까? 이것은 파이썬의 정수형 저장 방식의 특성 때문이다. 파이썬은 인터프리터가 구동될 때, -5부터 256까지의 정수값을 특정 메모리 주소에 저장한다. 그리고 해당 숫자를 할당하려고 하면 해당 변수는 그 숫자가 가진 메모리 주소로 연결한다.

리스트는 기본적으로 값을 연속으로 저장하는 것이 아니라, 값이 있는 주소를 저장하는 방식이다.

다양한 형태의 변수가 하나의 리스트에 들어갈수있다.

a=[”color”,1,2]

기존 변수들과 함께 리스트 안에 다른 리스트를 넣을 수 있다. 흔히 이를 중첩 리스트라고 한다. 이러한 특징은 파이썬의 리스트가 값이 아닌 메모리의 주소를 저장해 메모리에 새로운 값을 할당하는 데 있어 매우 높은 자유도를 보장하므로 가능하다.사용자 인터페이스에는 GUI(Graphical User Interface) 와 CLI(Command Line Interface) 가 있다. 일반적으로 GUI 환경에서는 아이콘을 하나 클릭하면 그에 대한 명령이 실행된다. CLI는 마우스의 클릭이 아닌 키보드만으로 명령을 입력하는 환경이다.

input( ) 함수: 표준 입력 함수로, 사용자가 문자열을 콘솔 창에 입력할 수 있게 해 준다.

사용자로부터 키를 입력받은 후 표준제중으로 환산해서 출력하는 프로그램을 작성 출력예> 키를 입력해 주세요: 170 입력하는 170cm에 대한 표준체중은 63kg입니다. 환산방법((키-100)*0.9)

리스트의 이해

리스트(list): 하나의 변수에 여러 값을 할당하는 자료형이다. 파이썬에서는 리스트처럼 여러 데이터를 하나의 변수에 할당하는 기법을 시퀀스 자료형이라고 한다. 시퀀스 자료형은 여러 자료를 순서대로 넣는다는 뜻이다. 리스트는 하나의 자료형으로만 저장하지 않고, 정수형이나 실수형 같은 다양한 자료형을 포함할 수 있다.

indexing: 리스트에 있는 값에 접근하기 위해, 이 값의 상대적인 주소를 사용하는 것이다.

slicing: 리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 반환한다.

슬라이싱 기본 문법

변수명[시작인덱스:마지막인덱스]

파이썬의 리스트에서 ‘마지막 인덱스 - 1’까지만 출력된다. 만약 한 번 이상 리스트 변수를 사용하면 마지막 인덱스가 다음 리스트의 시작 인덱스가 되어 코드를 작성할 때 조금 더 쉽게 이해할 수 있다는 장점이 있다.

리버스인덱스

리스트에는 인덱스를 마지막 값부터 시작하는 리버스 인덱스 기능이 있다.

인덱스 범위를 넘어가는 슬라이싱

인덱스를 따로 넣지 않고 print(cities[:])과 같이 콜론(:)을 넣으면 cities 변수의 모든 값을 다 반환한다. 슬라이싱에서는 인덱스를 넘어서거나 입력하지 않더라도 자동으로 시작 인덱스와 마지막 인덱스로 지정된다

증가값(step)

슬라이싱에서는 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 넣을 수 있다. 증가값은 한 번에 건너뛰는 값의 개수이다.

리스트연산

덧셈 연산 : 덧셈 연산을 하더라도 따로 어딘가 변수에 할당해 주지 않으면 기존 변수는 변화가 없다

곱셈 연산 : 리스트의 곱셈 연산은 기준 리스트에 n을 곱했을 때, 같은 리스트를 n배만큼 늘려 준다.

in 연산 : 포함 여부를 확인하는 연산으로, 하나의 값이 해당 리스트에 들어 있는지 확인할 수 있다.

리스트 추가 및 삭제

append( ) 함수 : 새로운 값을 기존 리스트의 맨 끝에 추가

extend( ) 함수 : 새로운 리스트를 기존 리스트에 추가

insert( ) 함수 : 기존 리스트의 i번째 인덱스에 새로운 값을 추가, i번째 인덱스를 기준으로 뒤쪽의 인덱스가 하나씩 밀림.

remove( ) 함수 : 리스트 내의 특정 값을 삭제.

인덱스의 재할당 : 인덱스에 새로운 값을 할당한다. 인덱스 삭제 : del 함수를 사용한다.

패킹과 언패킹

패킹(packing): 한 변수에 여러 개의 데이터를 할당하는 것. 언패킹(unpacking): 한 변수의 데이터를 각각의 변수로 반환하는 것.

이차원 리스트

리스트를 효율적으로 활용하기 위해 여러 개의 리스트를 하나의 변수에 할당하는 이차원 리스트를 사용할 수 있다.

이차원 리스트를 하나의 변수로 표현하기 위해서는 다음과 같이 코드를 작성하면 된다 이차원 리스트에 인덱싱하여 값에 접근하기 위해서는 다음 코드와 같이 대괄호 2개를 사용한다.

리스트의 메모리 저장

파이썬은 리스트를 저장할 때 값 자체가 아니라, 값이 위치한 메모리 주소(reference)를 저장한다.

==은 값을 비교하는 연산이고, is는 메모리의 주소를 비교하는 연산이다. 아래 코드에서 a와 b는 값은 같지만, 메모리의 저장 주소는 다른 것이다.

ex)a=300

b=300

a is b

false

a==b

true가 나온다.

이전 코드와 다르게 is와 == 연산자는 모두 True를 반환한다. 그렇다면 a와 b의 메모리 주소는 같은 것일까? 이것은 파이썬의 정수형 저장 방식의 특성 때문이다. 파이썬은 인터프리터가 구동될 때, -5부터 256까지의 정수값을 특정 메모리 주소에 저장한다. 그리고 해당 숫자를 할당하려고 하면 해당 변수는 그 숫자가 가진 메모리 주소로 연결한다.

리스트는 기본적으로 값을 연속으로 저장하는 것이 아니라, 값이 있는 주소를 저장하는 방식이다.

다양한 형태의 변수가 하나의 리스트에 들어갈수있다.

a=[”color”,1,2]

기존 변수들과 함께 리스트 안에 다른 리스트를 넣을 수 있다. 흔히 이를 중첩 리스트라고 한다. 이러한 특징은 파이썬의 리스트가 값이 아닌 메모리의 주소를 저장해 메모리에 새로운 값을 할당하는 데 있어 매우 높은 자유도를 보장하므로 가능하다.input( ) 함수: 표준 입력 함수로, 사용자가 문자열을 콘솔 창에 입력할 수 있게 해 준다.

사용자로부터 키를 입력받은 후 표준제중으로 환산해서 출력하는 프로그램을 작성 출력예> 키를 입력해 주세요: 170 입력하는 170cm에 대한 표준체중은 63kg입니다. 환산방법((키-100)*0.9)

리스트의 이해

리스트(list): 하나의 변수에 여러 값을 할당하는 자료형이다. 파이썬에서는 리스트처럼 여러 데이터를 하나의 변수에 할당하는 기법을 시퀀스 자료형이라고 한다. 시퀀스 자료형은 여러 자료를 순서대로 넣는다는 뜻이다. 리스트는 하나의 자료형으로만 저장하지 않고, 정수형이나 실수형 같은 다양한 자료형을 포함할 수 있다.

indexing: 리스트에 있는 값에 접근하기 위해, 이 값의 상대적인 주소를 사용하는 것이다.

slicing: 리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 반환한다.

슬라이싱 기본 문법

변수명[시작인덱스:마지막인덱스]

파이썬의 리스트에서 ‘마지막 인덱스 - 1’까지만 출력된다. 만약 한 번 이상 리스트 변수를 사용하면 마지막 인덱스가 다음 리스트의 시작 인덱스가 되어 코드를 작성할 때 조금 더 쉽게 이해할 수 있다는 장점이 있다.

리버스인덱스

리스트에는 인덱스를 마지막 값부터 시작하는 리버스 인덱스 기능이 있다.

인덱스 범위를 넘어가는 슬라이싱

인덱스를 따로 넣지 않고 print(cities[:])과 같이 콜론(:)을 넣으면 cities 변수의 모든 값을 다 반환한다. 슬라이싱에서는 인덱스를 넘어서거나 입력하지 않더라도 자동으로 시작 인덱스와 마지막 인덱스로 지정된다

증가값(step)

슬라이싱에서는 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 넣을 수 있다. 증가값은 한 번에 건너뛰는 값의 개수이다.

리스트연산

덧셈 연산 : 덧셈 연산을 하더라도 따로 어딘가 변수에 할당해 주지 않으면 기존 변수는 변화가 없다

곱셈 연산 : 리스트의 곱셈 연산은 기준 리스트에 n을 곱했을 때, 같은 리스트를 n배만큼 늘려 준다.

in 연산 : 포함 여부를 확인하는 연산으로, 하나의 값이 해당 리스트에 들어 있는지 확인할 수 있다.

리스트 추가 및 삭제

append( ) 함수 : 새로운 값을 기존 리스트의 맨 끝에 추가

extend( ) 함수 : 새로운 리스트를 기존 리스트에 추가

insert( ) 함수 : 기존 리스트의 i번째 인덱스에 새로운 값을 추가, i번째 인덱스를 기준으로 뒤쪽의 인덱스가 하나씩 밀림.

remove( ) 함수 : 리스트 내의 특정 값을 삭제.

인덱스의 재할당 : 인덱스에 새로운 값을 할당한다. 인덱스 삭제 : del 함수를 사용한다.

패킹과 언패킹

패킹(packing): 한 변수에 여러 개의 데이터를 할당하는 것. 언패킹(unpacking): 한 변수의 데이터를 각각의 변수로 반환하는 것.

이차원 리스트

리스트를 효율적으로 활용하기 위해 여러 개의 리스트를 하나의 변수에 할당하는 이차원 리스트를 사용할 수 있다.

이차원 리스트를 하나의 변수로 표현하기 위해서는 다음과 같이 코드를 작성하면 된다 이차원 리스트에 인덱싱하여 값에 접근하기 위해서는 다음 코드와 같이 대괄호 2개를 사용한다.

리스트의 메모리 저장

파이썬은 리스트를 저장할 때 값 자체가 아니라, 값이 위치한 메모리 주소(reference)를 저장한다.

==은 값을 비교하는 연산이고, is는 메모리의 주소를 비교하는 연산이다. 아래 코드에서 a와 b는 값은 같지만, 메모리의 저장 주소는 다른 것이다.

ex)a=300

b=300

a is b

false

a==b

true가 나온다.

이전 코드와 다르게 is와 == 연산자는 모두 True를 반환한다. 그렇다면 a와 b의 메모리 주소는 같은 것일까? 이것은 파이썬의 정수형 저장 방식의 특성 때문이다. 파이썬은 인터프리터가 구동될 때, -5부터 256까지의 정수값을 특정 메모리 주소에 저장한다. 그리고 해당 숫자를 할당하려고 하면 해당 변수는 그 숫자가 가진 메모리 주소로 연결한다.

리스트는 기본적으로 값을 연속으로 저장하는 것이 아니라, 값이 있는 주소를 저장하는 방식이다.

다양한 형태의 변수가 하나의 리스트에 들어갈수있다.

a=[”color”,1,2]

기존 변수들과 함께 리스트 안에 다른 리스트를 넣을 수 있다. 흔히 이를 중첩 리스트라고 한다. 이러한 특징은 파이썬의 리스트가 값이 아닌 메모리의 주소를 저장해 메모리에 새로운 값을 할당하는 데 있어 매우 높은 자유도를 보장하므로 가능하다.