Wecode 파이썬 모르는 부분 (list)

목적 : 함수는 조금 익숙해졌지만 리스트랑 섞이며 응용을 하니까 어떻게 접근 해야 할지 감이 안잡힌다.. 그래서 일단 다른 글에 올라온 걸 레퍼런스 해야겠단 생각을 하게 되었다.

Assignment

Input으로 주어진 리스트의 첫번째와 마지막 element의 값을 더한 값을 리턴 해주세요.

  • 만일 리스트가 비어있다면 0이 리턴되어야 합니다.

example1)

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

#출력
6

example2)

inputs = [1]

#출력
1

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

length = len(inputs)

일단 다른 블로그에서 참조한 코딩 근데 호출인자도 없고, 더 복잡했따..

def add_first_and_last_elements(my_list):
  # 이 함수를 구현해주세요
  if len(my_list) ==0:
    return 0
  elif len(my_list) ==1:
    return my_list[0]
  else:
    return my_list[0]+ my_list[len(my_list)-1]

그래서 나름대로 바꾸어봤다

def add_first_and_last_elements(my_list):
    # 이 함수를 구현해주세요.
  length = len(my_list)
  
  if length > 1:
    return my_list[0] + my_list[-1]
  elif length == 1:
    return my_list[0]
  else:
    return 0

a = add_first_and_last_elements([1,2,3,4,5])
b = add_first_and_last_elements([])
print(a)
print(b)

6
0

답은 나왔지만 다시 해보라면 할 자신이 없기에 한 두어번 더 해보고 넘거야겠다 해야할 산들이 산더미다...ㅠ 두번째는 조금 더 내가 이해하기 쉽게 바꿔보았다

def add_first_and_last_elements(my_list):
    # 이 함수를 구현해주세요.
  length = len(my_list)

  if length > 1 :
    return my_list[0] + my_list[-1]
  else  :
    return 0
  

a = add_first_and_last_elements([1,2,3,4,5])
b = add_first_and_last_elements([0])


print(a)
print(b)

6
0

make_list함수의 리턴값이 ["wecode", 2021]가 되도록 List 을 만들어 주세요.

30번 문제를 풀면서 든 생각인데 호출인자에 함수이름()을 안해도되네? 리스트는 특별한가?
보통 a =make_list(["wecode", 2021]) 이렇게 해와서 이런줄 알았는데 이렇게 해보니

def make_list():
   여기에 코드를 작성해주세요.
  
  
   아래의 코드는 수정하지 마세요.
  return my_list
  
a =["wecode", 2021]
print(a)

['wecode', 2021]

호출인자에 함수이름을 넣어봤다
def make_list():
여기에 코드를 작성해주세요.

아래의 코드는 수정하지 마세요.
return my_list

a =make_list(["wecode", 2021])
print(a)

File "main.py", line 8
a =make_list(["wecode", 2021])
^
IndentationError: unindent does not match any outer indentation level

결론 :일단 나중에 생각하고 넘어가자.. 리스트는 뭔가 다르겠지?

다차원 리스트란 : 리스트를 중첩할 수 있다 자료구조 큐를 할때 무척 중요한거 같다

multi_list 함수의 리턴값이 [["becoming", 29], ["developers", 30]] 가 되도록 List 을 만들어 주세요.

def multi_list():
   아래에 코드를 작성해주세요.

  
   아래의 코드는 변경하지 마세요.
  return my_list


a =[["becoming", 29], ["developers", 30]]
print(a)

["becoming", 29], ["developers", 30]]

주어진 리스트 my_list 에서 두번째 데이터를 반환하는 list_index 함수를 작성해주세요.

리스트에서 원하는 정보를 빼오는것을 인덱싱이라 한다 문제를 보자

굳이 my_list라는 변수에 리스트가 함수 안에 들어가있네?
first_value 라는 필요없는것이 리턴되어있네..? fitst_value에 리스트 60을 넣고
해보고 난 후에야 전에 호출함수가 왜 함수이름을 안적었는지 알았다
함수 안에 변수가 들어가면 호출인자에 함수이름을 적어야 하는구나라는 사실을 아닐 수도있다.
일단 패스

def list_index():
    # 아래의 코드는 변경하지 마세요.
    my_list = [50, 60, 70]
  
    # 아래에 코드를 작성해주세요.
    first_value = my_list[1]

    # 아래의 코드는 변경하지 마세요.
    # return first_value
    return first_value

a =list_index()
print(a)

pop()메소드를 사용해서 마지막 요소를 제거하는 함수 list_pop`을 완성해주세요.

처음에는 my_list.pop[2] 를 했었는데 계속 안되다가 1을 넣으니까 지워졌다
리스트면 중괄호가 맞는거 같은데 흐음 알다가도 모르겠다


  
  def list_pop():
    # 아래의 코드는 수정하지 마세요.
    my_list = [["John", 23], ["cat", 2]];

    # 아래에 코드를 작성해 주세요.
    my_list.pop(1)
    # 아래의 코드는 수정하지 마세요.
    return my_list
a = list_pop()
print(a)

[['John', 23]]

오 이거 예전부터 많이 봤던 것인데 나와서 암기해야겠다

37-4. Empty List

처음에는 비어있는 list를 생성한다음에 나중에 element들을 추가 할 수도 있습니다.
Empty list는 element가 없는 비어있는 [](대괄호)로 만들 수 있습니다.

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

def merge_and_swap(list1, list2):

**# # Assignment

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

 - 2개의 리스트를 input으로 받습니다.
 - input 받은 2개의 리스트를 하나의 리스트로 합칩니다.
 - 합쳐진 리스트의 첫 element와 마지막 element를 서로 바꾼 후 리스트 전체를 리턴 합니다.
 - input 모두 빈 리스트이면 빈 리스트를 리턴합니다.

 example)

 ```python
 #input
 list1 = [1, 2, 3, 4, 5]
 list2 = [6, 7]
#output
[7, 2, 3, 4, 5, 6, 1]
list1 = list1 + list2

이 함수를 구현해 주세요 솔직히 몰라서 If 구글로 서치해서 봤다 억울한것은 봤지만 한 두번정도 새본 다음에야 비로소, 이해가 되었다

```

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
a = merge_and_swap([1,2,3,4,5],[6,7,8,9])
print(a)


> [9, 2, 3, 4, 5, 6, 7, 8, 1]

좋은 웹페이지 즐겨찾기