ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023.7.21.금요일
    TIL( Today I Learned) 2023. 7. 21. 23:21

    7.20

     

    숙제 한음님과 함께 푼것중에 다시 검토해야 할거

     

    1//.  주사위 게임 2

     

    문제 설명

    1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.

    • 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.
    • 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다.
    • 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.

    세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

     

    def solution(a, b, c):

        numbers = {a, b, c}

        if len(numbers) == 3:  # All three numbers are different

            return a + b + c

        elif len(numbers) == 2:  # Two numbers are the same, one is different

            return (a + b + c) * (a**2 + b**2 + c**2)

        else:  # All three numbers are the same

            return (a + b + c) * (a**2 + b**2 + c**2) * (a**3 + b**3 + c**3)

     

    처음에는 if a==b==d:쓰고 또 elif a==b and b!=c …… 이렇게 한참 썼는데, set란 것을 이용해서

    'set()' 함수는 입력에 몇 개의 고유한 숫자가 있는지 결정하는 데 사용되며,

     이는 다양한 채점 사례를 식별하는 데 도움이 됩니다.

    가령  if a==b==d,==> if len(numbers) = 1 로 바꿀수 있다는 것/// 쉽고 빠르다

     

     

     

    • 숙제2 콜라츠 수열 만들기

    • 문제 설명

    모든 자연수 x에 대해서 현재 값이 x이면 x가 짝수일 때는 2로 나누고, x가 홀수일 때는 3 * x + 1로 바꾸는 계산을 계속해서 반복하면 언젠가는 반드시 x가 1이 되는지 묻는 문제를 콜라츠 문제라고 부릅니다.

    그리고 위 과정에서 거쳐간 모든 수를 기록한 수열을 콜라츠 수열이라고 부릅니다.

    계산 결과 1,000 보다 작거나 같은 수에 대해서는 전부 언젠가 1에 도달한다는 것이 알려져 있습니다.

    임의의 1,000 보다 작거나 같은 양의 정수 n이 주어질 때 초기값이 n인 콜라츠 수열을 return 하는 solution 함수를 완성해 주세요.

     

    def solution(n):

        answer = []

        x=1

        while x==1:

            if n%2 ==0:

                

                answer.append(n)

                n = n//2

            else:

                answer.append(n)

                n = 3*n+1

            if n ==1:

                answer.append(n)

                x = 0

        return answer

                

    정작 내가 이해가 안되었던 부분은

     n = n // 2 표현

    이것은  정수 나누기를 수행하고 n의 값을 결과로 업데이트하기 위한 줄임말.

    Python에서 이중 슬래시 //는 정수 나누기 연산자입니다. n // 2를 수행하면 n을 2로 나누고 소수 부분을 버리고 결과가 정수가 되도록 합니다.

    다음은 n = n // 2를 사용할 때 발생하는 일에 대한 단계별 분석입니다.

    1. n의 현재 값이 x라고 가정해 봅시다.
    2. n // 2는 x를 2로 나눈 정수를 계산합니다. 이는 결과가 x / 2보다 작거나 같은 가장 큰 정수임을 의미합니다.
    3. 계산된 결과는 변수 'n'에 다시 할당되어 이전 값을 대체합니다.

    예를 들어 n이 처음에 7이면 n // 2는 3이 되고 n은 3으로 업데이트됩니다. 마찬가지로 n이 8이면 n // 2는 4가 되고 n은 4로 업데이트됩니다.

    다음은 간단한 예.

    n = 10

    n = n // 2  # Integer division: n is now 5

    n = n // 2  # Integer division: n is now 2

    n = n // 2  # Integer division: n is now 1

     

    따라서 'n'은 '10'에서 '5', '2'에서 '1'로 업데이트되며 각 단계는 정수 나누기를 사용하여 'n'의 현재 값을 2로 나눕니다.

    Collatz 수열의 맥락에서 n을 짝수일 때 2로 나누는 것은 수열의 규칙을 따르고 결국 값 '1'에 도달하기 위한 필수 단계입니다.

     

    def collatz_sequence(n):

        sequence = [n]

        

        while n > 1:

            if n % 2 == 0:

                n = n // 2

            else:

                n = 3 * n + 1

            sequence.append(n)

        

        return sequence

     

    # Example usage:

    n = 27

    result = collatz_sequence(n)

    print(result)

     

            이제 겨우 이해 했다

            

            

        숙제 3

    • 간단한 식 계산하기
    •  

    문제 설명

    문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

     

    def solution(binomial):

        a, op, b = binomial.split()

     

        a = int(a)

        b = int(b)

     

        if op == "+":

            result = a + b

        elif op == "-":

            result = a - b

        elif op == "*":

            result = a * b

     

        return result

     

     

    def solution(binomial):

        # 공백을 기준으로 문자열을 나눕니다.

        a, op, b = binomial.split()

     

        # 문자열로 된 숫자를 정수로 변환합니다.

        a = int(a)

        b = int(b)

     

        # 연산자에 따라 계산을 수행합니다.

        if op == '+':

            result = a + b

        elif op == '-':

            result = a - b

        elif op == '*':

            result = a * b

        else:

            raise ValueError("유효하지 않은 연산자입니다. '+', '-', '*' 중 하나를 사용해주세요.")

     

        return result

     

    def solution(binomial):

        answer = 0

        answer = eval(binomial)

     

        return answer

     

     

    solution=eval

     

    def solution(binomial):

        b = binomial.split()

     

        if b[1] == '+':

            return int(b[0])+int(b[2])

        elif b[1] == '-':

            return int(b[0])-int(b[2])

        else:

            return int(b[0])*int(b[2]) 

     

    def solution(binomial):

        answer = 0

        a,b,c = binomial.split(' ')

        if b == '+':

            return int(a) + int(c)

        if b == '-':

            return int(a) - int(c)

        if b == '*':

            return int(a) * int(c)

     

    def solution(binomial):

        answer = 0

        return eval(binomial)

     

    내가 몰랐던 부분은 바로  a,b,c = binomial.split(' ') 이다 // 이런 뜻인줄 알았으면 그냥 인데

     

     

    • 홀짝에 따라 다른 값 반환하기
    •  

    문제 설명

    양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.

     

    def solution(n):

        answer = 0

        if n%2 ==1:

            for i in range(1,n+1,2):

                answer +=i

        else:

            for i in range(2,n+1,2):

                answer += i*i

                    

        return answer

     

    def solution(n):

        return sum(x ** (2 - x % 2) for x in range(n + 1) if n % 2 == x % 2)

     

    def solution(n):

        if n%2:

            return sum(range(1,n+1,2))

        return sum([i*i for i in range(2,n+1,2)])

    • 70,745위
    • 점수
      1,130점
    • 해결한 문제
      68개
    • 70,361위
    • 점수
      1,131점
    • 해결한 문제
      69개
    •  
    • 순위
      69,274위
    • 점수
      1,134점
    • 해결한 문제
      70개
    • 배열의 원소 삭제하기
    •  

    문제 설명

    정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.

     

    def solution(arr, delete_list):

        answer = []

        for i in arr:

            if i in delete_list:

                pass

            else:

                answer.append(i)

        return answer

     

     

    @@@@@@@@@@@@@@@@@@@@@

     

     

    def solution(arr, delete_list):

     

        return [i for i in arr if i not in delete_list]

     

     

    @@@@@@@@@@@@@@@@@@@

     

     

    def solution(arr, delete_list):

        answer = []

        for i in delete_list:

            if i in arr:

                arr.remove(i)

        return arr

     

    • 순위
      69,274위
    • 점수
      1,134점
    • 해결한 문제
      70개
    • 순위
      68,906위
    • 점수
      1,135점
    • 해결한 문제
      71개

     

    • 부분 문자열 이어 붙여 문자열 만들기

     

    문제 설명

    길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

     

    def solution(my_strings, parts):

        answer = ''

        a =[]

        for i in range(len(parts)):

            p = my_strings[i]

            x,y = parts[i]

            a.append(p[x:y+1])

        answer =''.join(a)

     

     

        return answer

     

    from re import A

    m=["progressive", "hamburger", "hammer", "ahocorasick"]

    mls =[[0, 4], [1, 2], [3, 5], [7, 7]]

    answer =[]

    print(m[0])

    for i in range(len(m)):

      p = m[i]

     

      x,y= mls[i]

      print(x,y)

      a = p[x:y+1]

      print(a)

      answer.append(a)

    a1=''.join(answer)

     

    print(a1)

     

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    def concatenate_substrings(my_strings, parts):

        result = []

        for i in range(len(my_strings)):

            s, e = parts[i]

            substring = my_strings[i][s:e+1]

            result.append(substring)

        return ''.join(result)

     

    my_strings = ["abcdef", "ghijkl", "mnopqr"]

    parts = [[1, 3], [2, 4], [0, 2]]

    result = concatenate_substrings(my_strings, parts)

    print(result)

     

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

     

    def solution(my_strings, parts):

        answer = ""

        for i, (s, e) in enumerate(parts):

            answer += my_strings[i][s:e+1]

        return answer

     

    • 순위
      68,906위
    • 점수
      1,135점
    • 해결한 문제
      71개
    • l로 만들기 — 힘들게 푼거 
    •  

    문제 설명

    알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.

    쳇이용

    def make_l(myString):

        result = ""

        for char in myString:

            if char < 'l':

                result += 'l'

            else:

                result += char

        return result

     

    input_string = "abcdefghijklmnpqrstuvwxz"

    output_string = make_l(input_string)

    print(output_string)

     

    llllllllllllllllllllllllll

    @@@@@@@@@@@@@@@@@@@@@@@@

    내답 수정

    def solution(myString):

        for i in myString:

            if i in 'abcdefgh':

                myString = myString.replace(i, 'i')

        answer = myString

        return answer

     

    @@@@@@@@@@@@@@@@

    replace() 용법

    def solution(myString):

        for i in myString:

            if i in 'abcdefgh':

                myString = myString.replace(i, 'i')

        answer = myString

        return answer

     

     

    input_string = "abcdefghijk"

    result = solution(input_string)

    print(result)

     

    iiiijkijk

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    다른사람

    def solution(myString):

        return myString.translate(str.maketrans('abcdefghijk', 'lllllllllll'))

     

    def solution(myString):

        answer = [x if x > 'l' else 'l' for x in myString]

        return ''.join(answer)

     

    한지언

    • 순위
      67,423위
    • 점수
      1,139점
    • 해결한 문제
      73개

     

    • 5명씩
    •  

    문제 설명

    최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.

     

    def solution(names):

        answer = []

        for i in range(len(names)):

            if i %5 == 0:

                

                answer.append(names[i])

        return answer

        

        

    def solution(names):

        answer1 = names[:1]

        answer2 = names[5:6]

        answer3 = names[10:11]

        answer4 = names[15:16]

        answer5 = names[20:21]

        answer6 = names[25:26]

        answer7 = names[30:31]

        answer = answer1 +answer2+answer3+answer4+answer5+answer6+answer7

        return answer

     

    def solution(names):

        return names[::5]

    한지언

    • 순위
      67,423위
    • 점수
      1,139점
    • 해결한 문제
      73개

     

    파이썬의 zip() 함수는 여러 이터러블(예: 목록, 튜플 또는 문자열)을 튜플의 단일 이터레이터로 결합하는 데 사용되는 내장 함수입니다. 각 튜플은 입력 iterables의 해당 위치에 있는 요소를 포함합니다.

    zip() 함수의 구문은 다음과 같습니다.

     

    zip(iterable1, iterable2, ...)

     

    여기서 iterable1, iterable2 등은 결합하려는 입력 iterable입니다. zip()에 인수로 iterable을 여러 개 전달할 수 있습니다.

    zip() 함수는 튜플의 이터레이터를 반환합니다. 여기서 전달된 각 iterable의 첫 번째 요소는 함께 쌍을 이루고 각 iterable의 두 번째 요소는 함께 쌍을 이룹니다. 입력 iterable의 길이가 다른 경우 zip()은 가장 짧은 iterable이 소진되면 튜플 생성을 중지합니다.

    몇 가지 예를 살펴보겠습니다.

     

    예1)

    names = ['Alice', 'Bob', 'Charlie']

    scores = [85, 92, 78]

    zipped_data = zip(names, scores)

     

    for data in zipped_data:

        print(data)

     

    ₩₩₩₩₩₩₩₩₩₩₩₩₩

     

    ('Alice', 85)

    ('Bob', 92)

    ('Charlie', 78)

     

    이 예에서 zip() 함수는 names 및 scores 목록을 튜플의 반복자로 결합하는 데 사용됩니다. 각 튜플에는 입력 목록의 이름과 해당 점수가 포함됩니다.

     

    @@@@@@@@@@@@@@@@

     

     

    예2)

    fruits = ['apple', 'banana', 'cherry']

    colors = ['red', 'yellow', 'red', 'green']

    zipped_data = zip(fruits, colors)

     

    for data in zipped_data:

        print(data)

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ('apple', 'red')

    ('banana', 'yellow')

    ('cherry', 'red')

    이 예에서 zip() 함수는 fruits 및 colors 목록을 튜플의 반복자로 결합하는 데 사용됩니다. colors 목록에는 하나의 추가 요소('green')가 있으므로 zip() 함수는 가장 짧은 iterable(fruits)이 소진되면 튜플 생성을 중지합니다.

    zip() 함수는 여러 이터러블을 간결하고 효율적인 방식으로 함께 처리해야 할 때, 특히 해당 요소가 위치와 관련되어 있을 때 편리합니다

     

     

    • 할 일 목록
    •  

    문제 설명

    오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

     

    내꺼

    def solution(todo_list, finished):

        answer = [x for x,y in zip(all_list,finished) if y == 'false']

       Return answer

    챗꺼

    def solution(todo_list, finished):

        answer = [x for x, y in zip(todo_list, finished) if not y]

        return answer

     

    ????? if not y y == 'false' 왜 내것은 안돼?????

     

    —이 이하는 남의 것

    def solution(todo_list, finished):

        return [work for idx, work in enumerate(todo_list) if not finished[idx]]

     

     

     

    def solution(todo_list, finished):

        return [x for x, b in zip(todo_list, finished) if not b]

     

    def solution(todo_list, finished):

        answer = []

        for i in range(len(finished)):

            if finished[i]==False:

                answer.append(todo_list[i])

        return answer

    한지언

    • 순위
      67,092위
    • 점수
      1,140점
    • 해결한 문제
      74개

     

    • 0 떼기
    •  

    문제 설명

    정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

    def solution(n_str):

        return n_str.lstrip('0')

        Lstrip <=== 새로운 함수 

     

    a= "0010"

    n=-1

    for i in a:

      n +=1

      if i == 0:

        b= a.replace(a[n],'')

      else:

        b = a[n:]

        break

    print(b)

        

     

    def solution(n_str):

        answer = ''

        n=-1

        for i in n_str:

            n +=1

            

            if i == 0:

                n_str.replace(i,'')

             나의 헛짓거리

     

    • 홀수 vs 짝수

    • 문제 설명

    정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.

     

     

    def solution(num_list):

     

     

        an1 =num_list[::2]

        an2 =num_list[1::2]

        s1 =sum(an1)

        s2 =sum(an2)

     

        return max(s1,s2)

     

    1)

    def solution(num_list):

        return max(sum(num_list[::2]), sum(num_list[1::2]))

    2)

    def solution(num_list):

        return max(sum(num_list[0: len(num_list): 2]), sum(num_list[1: len(num_list): 2]))

    3)def solution(num_list):

        a,b=0,0

        for i in range(len(num_list)):

            if i%2:a+=num_list[i]

            else: b+=num_list[i]

        return max(a,b)

     

     

    한지언

    • 순위
      65,313위
    • 점수
      1,145점
    • 해결한 문제
      78개

     

    • 특별한 이차원 배열 2  힘들다 ????
    •  

    문제 설명

    n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.

    • 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]

     

    쳇도움 받아서 한거 내 실력이 아니다

    def solution(arr):

        n = len(arr)

        for i in range(n):

            for j in range(n):

                if arr[i][j] != arr[j][i]:

                    return 0

        return 1

     

     

    def solution(arr):

        answer = 0

     

        for i in range(len(arr)):

            for j in range(len(arr)):

                if arr[i][j] != arr[j][i]:

                    return 0

     

        return 1

    ?? 이해하기도 어렵다

    def solution(arr):

        return int(all(arr[i][j] == arr[j][i] for i in range(len(arr)) for j in range(len(arr))))

     

    ???? 이건 더하네

    def solution(arr):

        return int(arr == list(map(list, zip(*arr))))

    한지언

    • 순위
      65,313위
    • 점수
      1,145점
    • 해결한 문제
      78개

     

     

     

    한지언

    • 순위
      64,974위
    • 점수
      1,146점
    • 해결한 문제
      79개

     

     

     

    • x 사이의 개수

    문제 설명

    문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

     

    일단 나는 split() 함수가 떠오른다, 왜 무언가를 기준으로 나누니까

    그래서 split()을 써보는 것을 축으로 생각해본다

    문자열이 주어지면, 그것을 split(x)함수로 나누고 , 그리고 len()을 써서 순서를 정한다

    이때 max등을 쓰면 될거라고 생각한다

    근데 split()은 너도 알지만 문자열에서 목록으로 범위가 바뀐다는 사실 너도 알지 

    그니까 split()함수를 써서 나누고 그리고 그 나뉜 목록에서 글자 길이로 순서를 정한다는 것

    그때는 for 구문이 필요하겠지

     

    내답

    def solution(myString):

        answer = []

        a =myString.split("x") # 그럼 공백을 기준으로 나뉘어진 것들이 목록으로 나열

        for i in a:

            p =len(i)

            answer.append(p)

     

        return answer

     

    남의 답

    def solution(myString):

        return [len(w) for w in myString.split('x')]

     

    def solution(myString):

        return list(map(lambda x: len(x), myString.split('x')))

     

    def solution(myString):

        answer = []

        count = 0

        for s in myString:

            if s != "x":

                count += 1

            else:

                answer.append(count)

                count = 0

        answer.append(count)

     

        return answer

    나중에 시간 날 때 함 볼거???

    한지언

    • 순위
      64,974위
    • 점수
      1,146점
    • 해결한 문제
      79개

     

    접미사 배열

    문제 설명

    어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
    문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

     

    이거는 어떻게 풀어야 할까?

    일단 문자열에 모든 접미사를 구한다

    2- 그 해당 접미사를 사전순으로 정렬한다.

    ~~~~~~~~~~~~~~~~~~~~

    2? 이것도 sort처럼 오름차순 같은게 있을까? 내장함수가 있는지 알아보자

    있으면 사용하고 

    >> 정말 sort가 있다

    Sorted 는 문자열을 리스트로 

    Sort는 리스트를 리스트로 

    내답

    def solution(my_string):

     

        a = []

        for i in range(len(my_string)):

            a.append(my_string[i:])

     

        a.sort()

     

     

        return a

    ````````````````

    남의 답

    def solution(my_string):

        return sorted(my_string[i:] for i in range(len(my_string)))

     

     

    def solution(my_string):

        answer = []

        for i in range(len(my_string)):

            answer.append(my_string[-i:])

        answer.sort()

        return answer

     

     

    def solution(my_string):

        answer = []

     

        for i in range(len(my_string)):

            answer.append(my_string[i:])

     

        answer.sort()

     

        return answer

     

    한지언

    • 순위
      64,601위
    • 점수
      1,147점
    • 해결한 문제
      80개
    • 순위
      60,100위
    • 점수
      1,161점
    • 해결한 문제
      87개

     

    • 배열 만들기 3

     

    문제 설명

    정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다.

    intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다.

    이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.

     

    def solution(arr, intervals):

        answer = []

        for a, b in intervals:  #

            answer.extend(arr[a:b + 1]) # extend 함수로 병합하는 방법

        

        #an1 = [x for x in answer if isinstance(x, (int, float))] <==  answer 리스트에서 x를 뽑는데, 그 x는 

        

        return answer

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

     

    an1 = [x for x in answer if isinstance(x, (int, float))]  <==  answer 리스트에서 x를 뽑는데, 그 x는 

    (int, float)는 int와 float의 두 가지 데이터 유형을 포함하는 튜플입니다. Python에서 튜플은 쉼표로 구분되고 괄호로 묶인 요소 모음입니다.

     이 경우 튜플 (int, float)은 int 및 float 데이터 유형을 단일 엔티티로 함께 나타냅니다.

    코드 세그먼트 [x for x in answer if isinstance(x, (int, float))]는 목록 이해입니다. 

    answer 목록의 각 요소 x를 반복하고 x가 int 또는 float의 인스턴스인지 확인합니다. 

    isinstance() 함수는 이 검사를 수행하는 데 사용됩니다. x가 int 또는 float이면 결과 목록에 포함됩니다.

    따라서 목록 내포 '[x for x in answer if isinstance(x, (int, float))]'는 데이터 유형이 'int' 또는 'float'인 answer 목록의 요소만 포함하는 

    새 목록(an1)을 생성하여 answer 목록에 있을 수 있는 다른 데이터 유형을 효과적으로 필터링합니다.

     

    ##??

    [[2,3,4],[1,2,3,4,5]]이 [2,3,4,1,2,3,4,5]으로 바꾸려면 어떻게 해야해 파이썬 코드로바꾸는가?

     

    extend() 메서드 또는 + 연산자를 사용하여 두 개의 목록 [2, 3, 4] 및 [1, 2, 3, 4, 5]를 단일 목록 [2, 3, 4, 1, 2, 3, 4, 5]로 병합할 수 있습니다. 두 가지 방법을 모두 사용하여 수행하는 방법은 다음과 같습니다.

     

     

    extend() 메서드 사용:

     

    list1 = [2, 3, 4]

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

     

    list1.extend(list2)

    result_list = list1

     

    print(result_list)

     

    + 연산자 사용:

    list1 = [2, 3, 4]

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

     

    result_list = list1 + list2

     

    print(result_list)

     

     

    ###??

    [[2,3,4],[1,2,3,4,5]]이 목록에서 숫자만 골라내는 파이썬 코드가 있을까?

    Python 코드를 사용하여 숫자와 기타 데이터 유형이 혼합된 목록에서 숫자만 추출할 수 있다. 이것을 달성하는 한 가지 방법은 리스트의 각 요소가 원하는 숫자 데이터 유형(예: int, float 등)인지 확인하기 위해 isinstance() 함수와 함께 목록 내포를 사용하는 것입니다.

    다음은 주어진 목록에서 숫자만 선택하는 예제 코드입니다.

     

    original_list = [2, 3, 4, 'hello', 1, 2, 'world', 3.14, 4, 5]

     

    numbers_only_list = [x for x in original_list if isinstance(x, (int, float))]

     

    print(numbers_only_list)

     

    [2, 3, 4, 1, 2, 3.14, 4, 5]

     

    이 코드에서는 list comprehension을 사용하여 original_list의 각 요소 x를 반복하고 isinstance(x, (int, float))는 요소가 int 또는 float 유형인지 확인합니다. 그렇다면 x 요소는 numbers_only_list에 포함됩니다. 숫자가 아닌 요소(예: 문자열)는 최종 목록에서 제외됩니다.

     

     

     

     

     

     

     

     

     

     

    'TIL( Today I Learned)' 카테고리의 다른 글

    2023.7.23.일요일 D-8, "Forward, 8 days left" 96 to ?  (0) 2023.07.23
    2023.7.22.토요일  (0) 2023.07.22
    2023.7.20.목요일  (0) 2023.07.20
    2023.7.19  (0) 2023.07.19
    2023.7.18  (1) 2023.07.18
Designed by Tistory.