5.Wecode 5일차 2021,03,19 파이썬 리스트, 튜플, set 너무 너무 어렵다 아니 프로그래밍이 너무 어렵다 힝..

홍태경·2021년 3월 19일
0

Wecode_log

목록 보기
5/6

한문제를 푸는데 3시간이 걸렸다.. 별의 별 똥을 다쌋다
함수, for 문이 섞이면 갑자기 난이도가 헬이된다

Assignment

Input으로 주어진 리스트에서 홀수는 전부 지우고 짝수만 남은 리스트를 리턴해주세요.

  • 리스트의 요소들은 전부 숫자값이고 총 요소 수는 5개 입니다.

확실하진 않지만 알아낸것

  1. 인자값과 return 값은 동일 해야 한다
  2. for문에 반복문으로 돌아가던 넘버 인자를 numbers.remove(i) 해서 안에 I를 넣는것은 상상도 못했다 하 너무 힘들다... 다음문제도 벌써 걱정이다
  3. 함수 인자값이 numbers 하나라도 호출인자에 [1,2,3,4,5]에 넣으면 처리가 된다
    리스트는 짱인거 같다 5개같은 하나이다
    example
input = [1, 2, 3, 4, 5]

#결과
[2, 4]
def remove_odd_numbers(numbers):
    # 여기에 코드를 작성해주세요.
  
  for i in numbers:
    if i % 2 == 1 :
      numbers.remove(i)
  return numbers
      

 



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

[2, 4]

튜블과 리스트 차이!

튜블과 리스트는 비슷하지만 결정적인 차이가 있다

일단 둘은 자료구조에 중요한 부분이며 데이터를 보관하는 곳이다

둘의 차이점은 리스트는 안에 내용이 삭제 가능하지만 튜플은 삭제자체가 불가능하다.

When to use tuples
보시다시피 몇가지 차이점을 제외하고 나면 tuple과 list는 굉장히 유사합니다.

그렇다면 왜 tuple이 존재하는걸까요? Tuple은 언제 사용하는걸까요? 🤨 🧐

Tuple은 일반적으로 2개에서 5개 사이의 요소들을 저장할때 사용되며, 특정 데이터를 ad hoc(즉석적으로) 하게 표현하고 싶을때 사용됩니다.

튜플 문제)


#   Assignment
# Input 으로 주어진 list 를 3개의 tuples 로 구성된 리스트로 변환하여 return 해주세요.

# Input 리스트는 정확히 6개의 요소를 가지고 있습니다.

# 예를 들어, 다음과 같은 list 를 input 으로 받았다면:

# my_list = [1, 2, 3, 4, 5, 6]
# my_list = [1, 2, 3, 4, 5, 6]
# 다음과 같이 리턴해야 합니다.

# [(1,2), (3, 4), (5,6)]

튜플 문제의 답

def convert_list_to_list_of_tuples(my_list):
    # 이 함수를 구현해 주세요!
  
 tuple_a = tuple(my_list[0:2])
 tuple_b = tuple(my_list[2:4])
 tuple_c = tuple(my_list[4:6])
 
 a= [tuple_a, tuple_b, tuple_c]
 return a 
or
 
#  a= [tuple_a, tuple_b, tuple_c]             
# return tuple_a,tuple_b, tuple_c  # 리턴갯수가 많아도 된다 


b =  convert_list_to_list_of_tuples([1, 2, 3, 4, 5, 6])
print(b)

[(1, 2), (3, 4), (5, 6)]

이걸 하면서 알게 된 사실..
1. 꼭 같은 인자값으로 리턴 안해줘도 되네..? 머리가 아프담..ㅋ

새로운 문제!

5만 추출해내라!

## Assignment
# 왼쪽 상단의 `get_unique_numbers_count` 함수를 구현해주세요.

# `get_unique_numbers_count` 함수는 `numbers` 라는 parameter를 받습니다.

# `numbers`는 list 입니다. 

# `Numbers`의 고유 값들의 수를 return 해주면 됩니다.

# 예를 들어, 다음과 같은 input이 들어왔다면:

# ```python
# [1, 2, 1, 1, 3, 4, 5]
# ```

# `5`를 리턴해주면 됩니다.

답 ) 전에 했던 것을 레퍼런스 했다 방법이 맞든 틀리던 내가 했던 방식으로 고민해서 돌아가는게 너무 행복하다 함수는 하면 할 수록 너무 어렵다 ㅈ..잘 할수 있겠징..?

def get_unique_numbers_count(numbers):
    # 이 함수를 구현해주세요!
  
  for i in numbers:
    if 5 not in numbers:
      numbers.remove(i)

  return i



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

 python main.py
5

문제) 중복되는걸 지우고 남은 값을 출력해라(이것도 한 6시간 걸린거같다)



# ## Assignment

# Input 으로 주어진 리스트에서 오직 한번만 나타나는 값 (unique value)을 가지고 있는 요소는 출력해주세요.

# 예를 들어, 다음과 같은 리스트가 주어졌다면:

# ```python
# [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
# ```

# 다음과 같이 출력되어야 합니다.

# ```python
# 4
# 5
# ```

답)
메모리 변수에 마이리스트안에 숫자가 없다면 추가하고 중복되면 remove로 삭제해라
아무리봐도 난 개발자 머리가 아닌거같다 한문제 한문제가 핵폭탄급이다..ㅠ

my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
# set(my_list)
memory = []
## 아래 코드를 입력해주세요.

for i in my_list :
  if i not in memory:
    memory.append(i)
  else:
    memory.remove(i)

print(memory)
[4, 5]

my_list1부터 9까지 홀수를 입력하는 함수 for_loops()를 완성 해주세요.


def for_loops():
    # 아래 코드는 수정하지 마세요.
  my_list = []

    # 아래에 코드를 작성해 주세요.
  for i in range(1,10,2) :   ##(1,10,2) 는 홀수 (0,10,2)는 짝수 
    my_list.append(i)
  
  return my_list           ## 리턴값에 따라 결과가 다르다는걸 다시 상기되었다 중요!
                              like print()


b = for_loops()
print(b)

[1, 3, 5, 7, 9]

profile
나의 에고를 인정하고 사랑하자

0개의 댓글