リストの使い方まとめ + dictionary(辞書)型
皆さん電子辞書って持ってますか?先生は高校入学と同時に買ってもらった覚えがあります。
あれ、今のはどうかわかんないですが、昔のヤツでOS(パソコンのベースになるソフト)を入れて、いろいろ遊ぶことができたんですよ。ファミコン(知ってる?)世代のゲームを入れて授業中遊んだり、よくやってました。今はもう電子辞書どころかタブレットを配ってるわけですから、すげー時代になったもんだと思うわけです。ただ、そんなことばっかしてるとリッキーみたいになっちゃうよ。
リストってなんだっけ
次のコードを見てみましょう。単純に変数の中身を表示していますが、varという変数に、5と10の数字が代入されているのに、10しか表示されていません。
var = 5 # varに5を代入
var = 10 # varに510を代入
print(10)
# 実行結果:10
さて、変数の復習です。変数は小さい箱のイメージなのは、はるか昔にやりました。変数は、小さい箱なので、1つのデータしか入れる(代入する)ことはできません。なので、上のコードのように新しいデータを入れようとすると、古いデータは消えてしまいます。
これじゃ不便なときもありますよね。一つの変数にいくつもデータを入れることができたら、便利だよねーといって生まれたのが、リストというデータ型です。
リストの基本
リストの基本は超簡単。[]大かっこでくくって、 , カンマで区切る。
リストの書き方(宣言)
変数名 = [要素0,要素1,要素2,要素3,要素4......]
リストからデータを持ってくる
変数名[インデックス番号]
要素の番号をインデックス番号といいます。
# ricky_senseiリストを作成
ricky_sensei = ["イケメン", "かっこいい", "ステキ"]
# リストの1番目を持ってくる
print(ricky_sensei[1])
# 実行結果:かっこいい
インデックス番号が0から始まるのは、もう何回もやってるのでみんなわかって、、、ますよね??(圧)
忘れてる方は、いくつか適当なリストを作って中身を表示してみましょう。
リストとfor文の相性はバツグン
すでに学習したfor文の基本を思い出してみましょう
# 10回「リッキー先生はイケメン」と表示するプログラム
for i in range(10):
print("リッキー先生はイケメン")
このrange(10)を、作成したリストに置き換えてみます。
ricky_sensei = ["イケメン", "かっこいい", "ステキ"]
for i in ricky_sensei:
print(i)
# 実行結果:イケメン かっこいい ステキ
このようにリストとfor文を組み合わせることで、リストの中すべての要素に、順番に同じ処理を行うことができます。
数字のリストだと次のようなことができます。
すべての要素に1を足すプログラム
number_list = [13, 4, 2, 8]
for i in number_list:
print(i + 1)
# 実行結果:14 5 3 9
リストの小技 基本編
リストでよく使う小技をまとめます。
①リストの要素を書き換える(上書き)
要素の書き換えはかんたん!
変数名[変更したい要素のインデックス番号] = 新しく入れたい要素
例えばこんなかんじ
ricky_sensei = ["イケメン", "かっこいい", "ステキ"]
# 0番目の要素を「超イケメン」に変更
ricky_senisei[0] = "超イケメン"
print(ricky_sensei)
# ※printでリストを表示すると、カッコつきで全体が表示される。
実行結果:["超イケメン", "かっこいい", "ステキ"]
②リストどうしの足し算
リスト同士は足し算して連結することができます。
ricky_kao = ["イケメン", "かっこいい", "すてき"]
ricky_seikaku = ["やさしい", "明るい"]
# リスト同士を足し算
print(ricky_kao + ricky_seikaku)
# 実行結果;['イケメン', 'かっこいい', 'すてき', 'やさしい', '明るい']
どうしてもリストの中身が気に入らないという人は、要素を変えてやってみたらいいんじゃない?やれるもんならね!!(圧)
リストの小技 応用編
応用編といっても、pythonにもとからあるリストの機能を使うだけです。
①リストに新しく要素を追加(一番うしろに追加)
「やべ!これ入れるの忘れてた!」みたいなときに、一番うしろに追加する方法
ricky_sensei = ["イケメン", "かっこいい", "すてき"]
# 「ハンサム」を追加
rickky_sensei.append("ハンサム")
print(rickyu_sensei)
#実行結果:["イケメン", "かっこいい", "すてき", "ハンサム"]
辞書型(dict型)
リストに似たデータ型の一つに辞書型というのがあります。リストはインデックス番号でデータを管理していましたが、辞書型では数字以外にも、文字列などで管理することができます。
たとえば、クラスの生徒のイケメン度を記録しておきたいときなどに、リストではなく辞書型を使うと便利です(最低w)
# クラスのイケメン度データ
ikemendo = {"Aくん": "ふつう", "Bくん":"ぶさめん", "リッキー":"イケメン"}
# データを持ってくるときはインデックス番号ではなくデータで呼び出す
print(ikemendo["Aくん"])
「Aくん」というデータに「ふつう」というデータが紐付いているので、Aくんのデータを持ってくるときはikemendo["Aくん"]とします。このAくんにあたるのが「キー」、「ふつう」にあたるのが「値」と呼ばれます。
辞書型の特徴として、以下のものがあります。
①「順番」の概念がないので、ikemendo[0]などとしてもエラーになる
②ただし、for文を使ってリスト同様に全体に処理をすることができる。
用途によって、リストと辞書型を使い分けて行きましょう。
宿題
①5つのランダムな数字を、numbersという変数名のリストに入れてください。
②そのリストの中身全てを5倍して、全てを表示してください。
③最後にそのリストに、数字を一つ何でもいいので追加してください。
④キーが人の名前、値が誕生日の辞書(3人分)を作ってください。名前や誕生日は自由です。変数名はbirthday(バースデー)にしてください.そのなかの一人の誕生日を表示してください。
プログラムはそれぞれ paizaのサイト で実行しましょう。
しっかり復習してね!ではまた来週!