Wecode #4 TIL Python List

황인용·2019년 12월 8일
0

wecode TIL

목록 보기
4/12

List

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

▶ 소스

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번 부터 시작한다.

▶ 소스

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함수는 "덧붙이다"라는 뜻으로 listelement를 덕붙이는 기능을 제공한다

▶ 소스

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 이름을 위치

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

  1. dot 다음으로 append 위치

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

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


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

+

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

▶ 소스

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]

insert

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

▶ 소스

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

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

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의 값을 수정 할 수 있다.
수정하기 위해서는 수정하고자 하는 elementindex 값을 통해 list에서 element를 선택한 후 새로운 값을 지정해 주면된다

▶ 소스

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

▶ updating element 방법

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

  1. 그 다음 대괄호 위치

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

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

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

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_pang의 pang.log

0개의 댓글