【問題1:リスト】
リストを引数として受け取り、偶数と奇数のリストに分けて返す関数を作成してください。ただし、偶数リストは小さい順に、奇数リストは大きい順に並べ替えることとします。
【解答例】
def split_sort(lst):
even = sorted([x for x in lst if x % 2 == 0])
odd = sorted([x for x in lst if x % 2 != 0], reverse=True)
return even, odd
【利用方法と出力】
lst = [5, 2, 7, 8, 3, 1, 9, 4, 6]
even, odd = split_sort(lst)
print(even) # [2, 4, 6, 8]
print(odd) # [9, 7, 5, 3, 1]
【問題2:リスト②】
リストを引数として受け取り、重複する要素を削除し、リスト内の要素を数値順に並べ替えた上で、最初の3つの要素を返す関数を作成してください。
【解答例】
def remove_duplicates_and_sort(lst):
unique_lst = list(set(lst))
unique_lst.sort()
return unique_lst[:3]
【利用方法と出力】
lst = [10, 5, 3, 5, 2, 10, 7, 2, 1] #リストの中身はご自身でいれてください。
remove_duplicates_and_sort(lst)
【問題3:文字列】
文字列を引数として受け取り、文字列中の単語をすべて逆順にし、単語の順番を逆転させた新しい文字列を返す関数を作成してください。ただし、単語は空白で区切られているものとします。
【解答例】
def reverse_words(s):
words = s.split()
reversed_words = [w[::-1] for w in words]
reversed_sentence = " ".join(reversed(reversed_words))
return reversed_sentence
【利用例と出力例】
s = "Hello world, how are you?"
result = reverse_words(s)
print(result)
# "you? are how world, Hello"
【問題4:リスト3】
2つのリストを引数として受け取り、それらのリストの中で重複する要素を抽出し、新しいリストとして返す関数を作成してください。ただし、重複する要素がない場合は空のリストを返すこととします。
【解答例】
def get_common_elements(list1, list2):
common_elements = []
for element in list1:
if element in list2 and element not in common_elements:
common_elements.append(element)
return common_elements
【利用例と出力例】※リストは自分で作成必要
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
common_elements = get_common_elements(list1, list2)
print(common_elements)
# [3, 4, 5]
【問題5:辞書】
辞書を引数として受け取り、辞書の値が数値である場合に、その値を2倍にした辞書を返す関数を作成してください。ただし、元の辞書は変更しないこととします。
【解答例】
def double_dict_values(d):
new_dict = {}
for key, value in d.items():
if isinstance(value, int) or isinstance(value, float):
new_dict[key] = value * 2
else:
new_dict[key] = value
return new_dict