Wecode #4 TIL Python List

황인용·2019년 12월 8일

wecode TIL

목록 보기
4/12

List

Python에서는 변수에 여러가지 값을 넣을 수 있는데, 이것을 보기 쉽게 그리고 활용하기 쉽게 list 라는 것을 제공한다.
list는 안에는 여러 값들을 넣을 수 있는데, 그 값 하나하나를 element라한다.

image.png

▶ 소스

korea_provinces = ["강원도", "경기도", "경상도", "전라도", "충청도"]
print(korea_provinces)
# > ["강원도", "경기도", "경상도", "전라도", "충청도"]

List에는 여러 string 이외에도 숫자, boolean 값 등 모든 type의 값을 저장 할 수 있으며, 서로 다른 type의 값들을 저장하는 것도 가능하다

▶ 소스

random_values = [1, "two", True]
print(random_values)
# > [1, "two", True]

Index

list에 저장되어 있는 값들 중 원하는 값을 읽어들이려면 해당 값의 순서를 통해서 읽어들일 수 있다.
list는 자바스크립트에서 배열의 index 처럼 순서는 0번 부터 시작한다.

image.png

▶ 소스

korea_provinces = ["강원도", "경기도", "경상도", "전라도", "충청도"]

print(f"서울은 {korea_provinces[1]}에 둘러쌓여 있습니다") 
# > "서울은 경기도에 둘러쌓여 있습니다"

Assignmnet#1

Input으로 주어진 리스트의 첫번째와 마지막 element의 값을 더한 값을 리턴 해주세요.
만일 리스트가 비어있다면 0이 리턴되어야 합니다.
리스트의 총 길이가 1이라면 그 하나의 요소 값만 리턴해주면 됩니다.

예를 들어, 다음의 리스트가 주어졌다면:

inputs = [1, 2, 3, 4, 5]

다음과 같은 결과물이 출력 되어야 합니다.

6

만일 다음의 리스트가 주어졌다면:

inputs = [1]

다음과 같은 결과물이 출력 되어야 합니다.

1

Hint: list의 총길이는 다음처럼 len 함수를 사용해서 알아낼 수 있습니다.

length = len(inputs)

▶ 소스

def add_first_and_last_elements(my_list):
  lastElindex = len(my_list)-1
  
  if len(my_list)==0:
    return 0
  elif (len(my_list)==1):
    return (my_list[0])
  else:
    return (my_list[0] + my_list[lastElindex])

▶ 소스(model solution)

def add_first_and_last_elements(my_list):
  length = len(my_list)
  
  if length > 1:
    return my_list[0] + my_list[length - 1]
  elif length == 1:
    return my_list[0]
  else:
    return 0

Adding And Changing Elemnets To List

Append

list에서 새로운 element를 추가 하익 위해서는 일반적으로 append라는 함수를 사용한다.
append함수는 "덧붙이다"라는 뜻으로 list에 element를 덕붙이는 기능을 제공한다

▶ 소스

color_list = ["Red", "Blue", "Green", "Black"]

print(color_list) ## ==> ['Red', 'Blue', 'Green', 'Black']

color_list.append("Yellow")

print(color_list) ## ==> ['Red', 'Blue', 'Green', 'Black', 'Yellow']

위 소스예제와 같이 list에서 append함수의 문법은 다음과 같다

  1. 먼저 list 이름을 위치

image.png

  1. 그 다음 dot(점)을 위치

image.png

  1. dot 다음으로 append 위치

image.png

  1. 그 후 괄호('( )')가 붙음

image.png

  1. 마지막으로 괄호 안에 추가하고자 하는 값을 넣음

image.png

image.png
list는 순차적으로 element를 저장하기 때문에 "덧붙이다"라는 개념의 append함수는 list의 맨 마지막 요소 뒤에 새로운 element가 추가된다.

+

추가하고자 하는 element가 한개 이상일때는 +를 사용한다
list에서 +는 element들을 추가 할때 대괄호('[ ]')를 사용하여 리스트의 형태로 만든 후 추가한다
즉, +는 list와 list를 합하여 출력한다. 하지만 +를 사용하기 위해서는 변수에 저장하여 사용하여야 한다

▶ 소스

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

list1 + list2

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

list1 = list1 + list2

print(list1)
#> [1, 2, 3, 4, 5, 6, 7]

image.png

insert

append와 +이 외에 insert를 사용하여 list에 새로운 element를 추가 할 수 있다.
insert는 list의 index 즉, element의 위치를 확인하여 추가할 수 있다.

▶ 소스

cities = [
    "서울특별시",
    "부산광역시",
    "인천광역시",
    "대구광역시",
    "대전광역시",
]
cities.insert(1, "제주특별자치도 제주시")
print(cities)
# > ['서울특별시', '제주특별자치도 제주시', '부산광역시', '인천광역시', '대구광역시', '대전광역시']

image.png

위 소스와 문법에서 확인했듯이 insert를 사용하여면 괄호 제일 첫번째로 element를 추가하고자 하는 list의 index를 넣어야한다. 그리고 다음에는 추가하고자 하는 element값을 넣는다

image.png

Empty List

처음에 비어있는 list를 생성한 다음에 나중에 element들을 추가 할 수도 있다.
비어있는 list를 만들때는 비어있는 대괄호('[]')로 생성할 수 있다.
▶ 소스

my_list = [ ]
print(my_list)
# > [ ]
my_list.append(1)
my_list = my_list + [2, 3]
print(my_list)
# > [ 1, 2, 3 ]

Updating Elements

기존 list에 있는 element의 값을 수정 할 수 있다.
수정하기 위해서는 수정하고자 하는 element의 index 값을 통해 list에서 element를 선택한 후 새로운 값을 지정해 주면된다

▶ 소스

cities = [
    "서울특별시",
    "부산광역시",
    "인천광역시",
    "대구광역시",
    "대전광역시",
]
cities[2] = "경기도 성남시"
print(cities)
# > ['서울특별시', '제주특별자치도 제주시', '경기도 성남시', '인천광역시', '대구광역시']

▶ updating element 방법

  1. 먼저 list이름이 위치하고

image.png

  1. 그 다음 대괄호 위치

image.png

  1. 대괄호 안에 바꾸고자 하는 element의 index를 지정

image.png

  1. Assignment를 의미하는 '='부호가 위치

image.png

  1. '='부호 다음에 새로운 값을 지정

image.png

image.png

Assignment#2

주어진 2개의 리스트를 하나의 리스트로 합친 후 리스트의 첫 element와 마지막 element를 서로 바꿔준 후 리스트 전체를 출력해주세요.

예를 들어, 다음과 같은 2개의 리스트가 주어졌다면

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

출력되야 하는 결과물은 다음과 같습니다,

[7, 2, 3, 4, 5, 6, 1]

빈 리스트가 들어온다면 빈리스트를 반환해야 합니다.

▶ 소스

def merge_and_swap(list1, list2):
  lengL1 = len(list1)
  lengL2 = len(list2)
  newList = list1 + list2
  lengnewList = lengL1 + lengL2
  

  if (lengL1==0):
    if (lengL2==0):
      return newList
    else:
      newList[0]=list2[lengL2-1]
      newList[lengnewList-1]=list2[0]
      return newList
  elif (lengL2==0):
    newList[0]=list1[lengL1-1]
    newList[lengnewList-1]=list1[0]
    return newList
  else:
    newList = list1 + list2
    newList[0]=list2[lengL2-1]
    newList[lengnewList-1]=list1[0]
    return(newList)

▶ 소스(model soultion)

def merge_and_swap(list1, list2):
  list1 = list1 + list2
  
  length = len(list1)
  
  if length > 1:
    first             = list1[0]
    last              = list1[length - 1]
    list1[0]          = last
    list1[length - 1] = first

    return list1
  else:
    return list1
profile
dev_hwang의 hwang.log

0개의 댓글