![見出し画像](https://assets.st-note.com/production/uploads/images/127841846/rectangle_large_type_2_55d3b4bd2e2500696f4c13d2826cf43c.png?width=1200)
【Python】超初心者向け問題3問(5) リスト
Python勉強の個人的なメモを兼ねた記事です。
最近慣れてきたリスト内包表記を問題に入れております。
出先などちょっとした空き時間にPythonの練習をしたいとき、GoogleColaboratoryは便利です。スマホからでも動作確認ができるのでオススメです。
Python超初心者向け問題
問題1: リストの合計
以下のリストがあります。
numbers = [5, 8, 13, 21, 34, 55]
このリストの要素をすべて足して、その合計を出力するプログラムを作成してください。
問題2: 偶数のみの合計
次のリストがあります。
numbers = [2, 5, 8, 13, 21, 34, 55, 68]
このリスト内の偶数のみを取り出し、その合計を計算するプログラムを作成してください。
問題3: リストの要素の重複を削除
以下のリストがあります。
numbers = [3, 5, 7, 3, 8, 2, 5, 7, 9, 2]
このリスト内の重複する要素を削除し、新しいリストを作成してください。その後、新しいリストを出力してみてください。
回答例:
問題1: リストの合計
## 例1: sum関数を使った方法
numbers = [5, 8, 13, 21, 34, 55]
print(sum(numbers))
## 例2: ループで計算
numbers = [5, 8, 13, 21, 34, 55]
total = 0
for number in numbers:
total += number
print(total)
## 例3: ちから技
numbers = [5, 8, 13, 21, 34, 55]
print(numbers[0] + numbers[1] + numbers[2] + numbers[3] + numbers[4] + numbers[5])
結果:
136
リストの合計は、SUM関数で一発です。
問題2: 偶数のみの合計
## 例1: リスト内包表記を使う
even_numbers = [ num for num in numbers if num % 2 == 0 ]
print("合計:{} 偶数リスト:{}".format(sum(even_numbers), even_numbers))
## 例2: ループで処理
even_numbers = []
for num in numbers:
if num % 2 == 0: #偶数は0, 奇数なら1
even_numbers += [num]
print("合計:{} 偶数リスト:{}".format(sum(even_numbers), even_numbers))
結果:
合計:112 偶数:[2, 8, 34, 68]
偶数: 2で割った余りが0になるもの。
偶数リストが出来たら、合計を計算すれば完成です。
『even_numbers = [ num for num in numbers if num % 2 == 0 ]』
のような、リスト内包表記は慣れないと意味が分かりにくいです。
最初はリスト内包表記を分解して考え、
for num in numbers:
if num % 2 == 0
even_numbers += [num]
としてリストに追加される!
と考えるとよいと思います。
問題3: リストの要素の重複を削除
## 例1: リストの順番を入れ替えない
numbers = [3, 5, 7, 3, 8, 2, 5, 7, 9, 2]
new_numbers = []
for number in numbers:
if number not in new_numbers: #新リストに値がない
new_numbers += [number] #リストに追加
print(new_numbers)
## 例2: リスト順番は気にしない方法
numbers = [3, 5, 7, 3, 8, 2, 5, 7, 9, 2]
new_numbers = set(numbers) #集合にする(重複データが消える)
new_numbers = list(new_numbers) #リストにする
print(new_numbers)
結果:
[3, 5, 7, 8, 2, 9] #例1
[2, 3, 5, 7, 8, 9] #例2
例2は、データの順番が関係ない場合は使用できます。
集合(set)の特徴を使ったシンプルな方法です。
この記事が気に入ったらサポートをしてみませんか?