Python dailycoding 1


구분해서 반환하기

    lst = ['u', '6', 'd', '1', 'i', 'w', '6', 's', 't', '4', 'a', '6', 'g', '1', '2', 'w', '8', 'o', '2', '0']
    # 원하는 return값 [3.6, 'udiwstagwo']

    def mean(lst):
      return [sum(int(n) for n in lst if n.isdigit())/10.0, "".join(c for c in lst if c.isalpha())]

가장 작은 두 수를 더하자

# 빠르고 쉽지만 뭔가 켕긴다.
def sum_two_smallest_numbers(numbers):
  return sum(sorted(numbers)[:2])

#method1
def sum_two_smallest_numbers(numbers):
  low1 = numbers[0]
  low2 = numbers[1]

  for i in numbers:
    if i < low1:
      low1 = i

  for i in numbers:
    if i < low2:
      if i != low1:
        low2 = i

  return low1 + low2

자릿수의 합

#원시적인 방법. digital root는 못 구함.
def digital_root(n):
  A=str(n)
  j=len(str(n))-1
  for i in j:
    sum+=A(i)
  return sum;

#정말로 자릿수만 더하기
def digital_root(n):
    while n >= 10:
        n = sum(int(digit) for digit in str(n))
    return n

#digital_root를 구하는 가장 쉬운 방법.
def digital_root(n):
  return n%9 or n and 8

Disemvowel


#한 줄
def disemvowel(string):
  return "".join(c for c in string if c.lower() not in "aeiou")

#전통적 코딩
def disemvowel(str2handle):
    vowel_character = ["a", "A", "e", "E", "o", "O", "i", "I", "u", "U"]
    str2return = ""
    i = 0
    n = len(str2handle)
    while i < n:
        if not str2handle[i] in vowel_character:
            str2return += str2handle[i]
        i += 1
    return str2return

#왜 이렇게 하면 안될까..
def vowel(string):
    b=list(string)
    for i in b:
        if b[i] in ('a','e','i','o','u'):
            del(b[i])
    string="".join(b)
    print(string)
vowel("stringcheese")