[PYTHON] List

Minjeong Bak·2021년 10월 11일
0

PYTHON/Django

목록 보기
4/14
post-thumbnail

List

개념

  • [] 대괄호 안에 원하는 값을 나열, 각각의 값들은 쉼표를 사용해서 구분한다.
  • list 안에 저장된 값: element(요소)
  • 모든 date type 저장 가능하며 서로 다른 type들도 저장 가능하다.
  • 값을 수정하는 것이 가능하다.

index

list의 순서

  • 0번 부터 시작
  • 원하는 값을 읽을 수 있음
  • 마지막 값은 index에 -1한 길이로 찾을 수 있음

  • len 함수
    : length = len(inputs)

index[]
0부터 시작
0, 1, 2, 3 ...
뒤에서부터는
-1, -2, -3 ...

  • index[0]: 첫번째 값, index[-1]: 마지막 값

다차원 리스트

any_list = [
  [1,2,3],
  [4,5,6],
  [7,8,9],
  [[10,11,12], 13, 14]
]
any_list[3] # equals [[10,11,12], 13, 14]
any_list[3][0] # equals [10,11,12]
any_list[3][0][1] # equals 11

출력
[[10,11,12], 13, 14]]
[10,11,12] # [[10,11,12], 13, 14]]의 첫 번째 요소
11 # [10,11,12]의 두 번째 요소

새로운 값 추가하기

  • .append() 사용
    - 리스트의 가장 끝에 새로운 값을 추가
arr = [1,2,3]
arr.append(4)
print(arr)

출력
[1,2,3,4]

마지막 값 제거하기

  • .pop() 사용
    - 리스트 가장 끝에 있는 마지막 값 제거
three = [1, 4, 6]
remove_one = three.pop()
print(remove_one) 
print(three) 

출력
6
[1,4]

list 합치기

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7]

list1 + list2
print(list1)
> [1, 2, 3, 4]

list1 = list1 + list2
print(list1)
> [1, 2, 3, 4, 5, 6, 7]

원하는 위치에 삽입하기

  • .insert(index, element) 사용

cities = [
    "서울특별시",
    "부산광역시",
    "인천광역시",
    "대구광역시",
    "대전광역시",
]

cities.insert(1, "제주특별자치도 제주시")

Empty List

  • 비어있는 list 생성 가능, 나중에 element 추가할 수 있다.
my_list = [ ]
my_list.append(1)
my_list = my_list + [2, 3]

list 두 요소 값 바꾸기

아래 조건을 만족하는 merge_and_swap 함수를 완성 하세요.

  • 2개의 리스트를 input으로 받습니다.
  • input 받은 2개의 리스트를 하나의 리스트로 합칩니다.
  • 합쳐진 리스트의 첫 element와 마지막 element를 서로 바꾼 후 리스트 전체를 리턴 합니다.
  • input 모두 빈 리스트이면 빈 리스트를 리턴합니다.
def merge_and_swap(list1, list2):
  if len(list1) == 0 and len(list2) == 0:
    return list1
  else:
    list1 = list1 + list2
    temp = list1[0]
    list1[0] = list1[-1]
    list1[-1] = temp
    return list1

temp 변수를 임시로 저장변수로 활용하여 두 값을 바꿔준다.

List Slicing

list_name[start : stop]

  • Slicing은 적용한 list를 수정하는 것이 아닌 새로운 list를 만들어 내는 것
bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"]

sub_bts = bts[1:4]
print(sub_bts)

#출력
['제이홉', '진', '정국']

  • 생략 가능

[:4] -> start index가 빈칸인 경우, list의 첫 요소부터 시작

bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"]
sub_bts = bts[:4]
print(sub_bts)

#출력
['RM', '제이홉', '진', '정국']

[2:] -> stop index가 빈칸인 경우, start index부터 마지막 요소까지

bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"]
sub_bts = bts[2:]
print(sub_bts)

#출력 
['진', '정국', '지민', '뷔', '슈가']

Slicing Steps

list_name[start : stop : step]

  • step값만큼 건너뛰어 가져오는 기능
  • step은 optional이며 default값은 1
bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"]

sub_bts = bts[1:4:2]
print(sub_bts)

#출력
["제이홉", "정국"]

짝수만 출력 list[0::2]
홀수만 출력 list[1::2]

List Elements 삭제

del

del list[index]

twice = [ "나연",  "사나",  "정연",  "모모",  "미나", "채영",  "다현", "쯔위",  "지효"]

del twice[3]
print(twice)
> ['나연', '사나', '정연', '미나', '채영', '다현', '쯔위', '지효']

remove

twice = [ "나연",  "사나",  "정연",  "모모",  "미나", "채영",  "다현", "쯔위",  "지효"]

twice.remove("모모")
print(twice)
> ['나연', '사나', '정연', '미나', '채영', '다현', '쯔위', '지효']

0개의 댓글