TIL 9 | List

hjulee12·2020년 11월 21일
0

Python

목록 보기
5/9

1. List의 구성

  • Python에서는 리스트(list)를 통해 여러 데이터를 순차열적으로 저장할 수 있다.
  • List는 대괄호([])로 감싸져 있으며 저장되어 있는 값은 요소(element)라고 하고 쉼표로 구분된다.
  • List는 문자열(string) 이외에도 숫자, boolean 값 등 모든 type의 값을 저장할 수 있고 서로 다른 type 값의 저장도 가능하다.
  • list에는 순서가 존재하며 0번부터 시작한다.
  • 다차원 리스트
    다차원 리스트는 리스트 내 리스트를 의미하며 아래와 같은 모양으로 구성된다.
    My_list = [["Bulls", 23], ["White Sox", 45]]

2. Index를 이용해 list에 접근하기

1) 리스트에서 첫 번째 데이터 추출하기

def list_index():
    my_list = [50, 60, 70];
    first_value = my_list[0];   # 첫 번째 데이터 반환
    return first_value

2) 인덱스의 데이터 수정하기

def modify_list():
    my_list = [18,64,99];
    my_list[0] = 72;   # 첫 번째 데이터를 72로 수정
    return my_list;

3) 다차원 리스트에서 데이터 추출하기

숫자 8을 리턴하는 함수 access_list() 만들기

def access_list():
    my_list = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];
    my_data = my_list[2][1];  # [세로 위치][가로 위치]
    return my_data;

3. list 요소 수정

1) 리스트에 새로운 값 추가하기

  • append() 이용하기
    list_name.append(element) 새로운 요소(element)를 리스트 마지막에 추가

  • + 이용하기
    추가하고자 하는 요소가 한 개 이상일때는 append 대신 + 를 사용할 수 있다.
    추가할 요소들을 대괄호([])를 이용하여 리스트의 형태로 만든 후 추가해야 한다.

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

list1 + list2

print(list1)  # list 1 = [1, 2, 3, 4]

list1 = list1 + list2

print(list1) # [1, 2, 3, 4, 5, 6, 7]
  • insert 이용하기
    insert를 이용하면 원하는 위치에 요소를 삽입할 수 있다.
cities = [
	"서울특별시",
    	"부산광역시",
   	"인천광역시",
    	"대구광역시",
        "대전광역시"
]

위 리스트에서 "제주시"를 "서울특별시" 다음에 삽입하고자 하면
아래와 같이 insert 메소드를 이용하면 된다.

cities.insert(1, "제주시")

  • empty list 생성 후 요소 추가하기
my_list = []   # 비어있는 대괄호로 생성
my_list.append(1)
my_list = my_list + [2, 3]

2) 리스트에서 값 제거하기

  • del 이용하기
    del 키워드와 list의 인덱스 이용하여 원하는 요소를 리스트에서 삭제
input = [1, 2, 3, 4, 5, 6, 7]
print(input)      # 결과 [1, 2, 3, 4, 5, 6, 7]

del input[3]
print(input)      # 결과 [1, 2, 3, 5, 6, 7] / '4' 삭제됨

예제

총 요소가 5개인 input list에서 홀수는 지우고 짝수만 남은 list return하기

def remove_odd_numbers(numbers):
  if numbers[4] % 2 != 0:
    del numbers[4]
  if numbers[3] % 2 != 0:  # elif 대신 if 쓰기! (대안이 아니니까)
    del numbers[3]
  if numbers[2] % 2 != 0:
    del numbers[2]
  if numbers[1] % 2 != 0:
    del numbers[1]
  if numbers[0] % 2 != 0:
    del numbers[0]
  return numbers
  • remove() 메소드 이용하기
    list_name.remove("elememt") 원하는 요소 삭제
def list_remove():
     my_list = ["고양이", "강아지"];
     my_list.remove("강아지");   # 함수명.remove("강아지");
     return my_list;		# 결과: my_list = ["고양이"]
  • pop() 메소드 이용하기
    list_name.pop() 리스트의 마지막 요소 삭제
def list_pop():
     my_list = [["John", 23], ["cat", 2]];
     my_list.pop();   # 함수명.pop();
     return my_list;

3) List slicing

리스트의 일부를 복사하는 것.

bts = ["RM", "제이홉", "진", "정국", "지민", "뷔", "슈가"]
sub_bts = bts[1:4]   # 2번째 요소부터 4번째 요소만 copy

결과: ['제이홉', '진', '정국']

list slicing에서의 option step

list_name[start: stop:step]  # step은 한번에 몇 요소씩 건너뛸 것인지 정해줌.

Slicing Tip
list slicing 시 start index를 빈칸으로 남겨두면 해당 list의 첫 요소부터 시작하고,
반대로 stop index를 빈칸으로 남겨두면 start index부터 끝까지 가져온다.

my_list = [1, 2, 3, 4, 5, 6, 7, 8]

sub_my_list1 = my_list[:4]
print(sub_my_list1)			# 결과 [1,2,3,4]

sub_my_list2 = my_list[4:]
print(sub_my_list2)			# 결과 [5,6,7,8]

sub_my_list3 = my_list[1:5]
print(sub_my_list3)			# 결과 [2,3,4,5]
profile
What you think, you become. What you feel, you attract. What you imagine, you create.

0개의 댓글