TIL(24.12.17)

채채·2024년 12월 17일

Today I Learned

목록 보기
34/75

스타터반 과제 풀어보기
리스트 컴프리핸션

# # Day 1

# 1. 주어진 문자열에서 각 문자의 출현 빈도를 계산하는 딕셔너리 컴프리헨션을 작성하세요.
def frequency():
    text = "hello world"
    count_text = {x : text.count(x) for x in set(text.replace(" ","")) }
    print(count_text)

frequency()

# 2. 1부터 100까지의 숫자 중 3의 배수이면서 5의 배수인 숫자만을 포함하는 리스트를 리스트 컴프리헨션으로 생성하세요.
def multiple() :
    multiple = [x for x in range(1,101) if x % 3 == 0 and x % 5 == 0]
    print(multiple)
multiple()


# 3. 두 개의 리스트가 주어졌을 때, 이를 딕셔너리로 결합하는 딕셔너리 컴프리헨션을 작성하세요.
keys = ['a', 'b', 'c']
values = [1, 2, 3] 
my_dict = {keys[i]: values[i] for i in range(len(keys))}
print(my_dict)
#컴프리헨션션
my_dict2 = {key : values for key, values in zip(keys,values)}
print(my_dict2)


# 4. 주어진 리스트에서 중복을 제거하고 고유한 요소만을 포함하는 새로운 리스트를 생성하세요. (힌트: set 사용)
original_list = [1, 2, 2, 3, 4, 4, 5]
set_list = set(original_list)
print(set_list)

    
# # 5. 2차원 리스트를 생성하는 리스트 컴프리헨션을 작성하세요. (예: 5x5 행렬)
matrix = [[0 for _ in range(5)] for _ in range(5)]

# 출력
for row in matrix:
    print(row)
matrix = [[row + col for col in range(5)] for row in range(5)]
print(matrix)
#출력
for row in matrix:
    print(row)

three_matrix = [[[i + j + k for k in range(5)] for j in range(5)] for i in range(5)]
print(three_matrix)


# 6. 주어진 문자열 리스트에서 길이가 5 이상인 문자열만 대문자로 변환하여 새로운 리스트를 만드세요.
    
string_list = ['apple', 'banana', 'pear', 'grape', 'kiwi']
s_list = []

for i in string_list :
    if len(i) >= 5 :
        s_list.append(i)
st_list = [i.upper() for i in s_list]
print(st_list)

s_list2 = [i.upper() for i in string_list if len(i) >= 5]

    
# 7. 두 개의 집합 A와 B가 주어졌을 때, 두 집합의 대칭 차집합을 구하세요.
set_a = {1, 2, 3, 4, 5}
set_b = {4, 5, 6, 7, 8}

symmetric_difference = (set_a -set_b) | (set_b -set_a)
print(symmetric_difference)

# 8. 1부터 10까지의 숫자에 대해 각 숫자의 제곱을 값으로 갖는 딕셔너리를 생성하세요.
squared = {x : x**2 for x in range(1,11)}
print(squared)


# 9. 주어진 리스트에서 짝수만 선택하여 그 제곱값을 가진 새로운 리스트를 생성하세요.
given_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squared = [i**2 for i in given_list if i % 2 == 0]
print(squared)

    
# 10. 여러 개의 리스트가 주어졌을 때, 이들을 하나의 리스트로 평탄화하는 함수를 작성하세요.  
lists = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flattened = [num for row in lists for num in row]
print(flattened)
profile
화이팅

0개의 댓글