0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Paiza Python 入門編4: リストの基礎

Last updated at Posted at 2020-10-29

##01リストとは何か学ぼう
データ構造の一種。名とまったデータを扱う

lesson.py
配列=リスト

変数1つずつ

変数 player_1="勇者"
変数 player_2="魔法使い"

リスト[複数ある]

team[0]="勇者"
team[1]="魔法使い"
team[2]="ドラゴン"

0から始まるようになっている

リストの具体例

team[0]="勇者"
team[1]="魔法使い"
team[2]="ドラゴン"(データの追加)(データの変更)(データの削除)

番号でデータを参照
print(team[0])

番号を計算で求める
print(team[n+1])

データの個数
print(len(team)

リストの使いどころ
1.並び順管理が必要な処理
出席番号座席順パーティの並び順
トランプや将棋などのゲームデータ
2.Webフォームの選択肢
.年齢都道府県など
3.エクセルのような複数行データ
CSVデータの処理

##02:リストを作ろう

lesson.py

#変数
player_1="勇者"
player_2="魔法使い"

print(player_1)
print(player_2)

#リスト
team = ["勇者","魔法使い",100,player_1]
print(team)

##演習

lesson.py
list = ["戦士","","僧侶","魔法使い"]
# この下で、listを出力してみよう
print(list)


2.指定の文字のリストにしてみよう

lesson.py
item = ["ロングソード","ブレードソード","エクスカリバー"]
print(item)

3.変数で、リストに代入しよう

lesson.py
# 変数で、リストに代入する

player_1 = "勇者"
player_2 = "魔法使い"
player_3 = "戦士"

# player_1 ~ 3を、リストに記述して、print関数で出力してください。
team=[player_1,player_2,player_3]

print(team)

##03:リストの要素を取り出してみよう

lesson.py
team = ["勇者", "魔法使い"]
print(team)
print(team[0])
num=0
print(team[num +1 ])

#エラーになるprint(team[10])

#要素数を表示することができる
print(len(team))

リストの参照 要素の番号を指定する

print(team[0]) 直接数値で指定する
print(team[num]) 変数で指定する
print(team[num + 1]) 計算式で指定する

len関数 要素の数
print(len(team))


##演習


リストのゼロ番の要素を取り出してみよう

```lesson.py

team = ["勇者", "戦士", "", "忍者", "魔法使い"]
# teamの1番左の要素をprint関数で出力する
print(team[0])

・リストから特定要素を取り出してみよう

lesson.py

team = ["勇者", "戦士", "", "忍者", "魔法使い"]
# teamの3番目の要素をprint関数で出力する
print(team[2])

```lesson.py

weapon = ["木の棒", "鉄の棒", "鉄の剣", "銅の剣", "石斧", "エクスカリバー"]
# ここに、要素数を出力するコードを記述する
print(len(weapon))

##04:リストを操作しよう

lesson.py

team = ["勇者", "魔法使い"]
print(team)
print(team[1])
print(len(team))

team.append("戦士")
print(team)
print(len(team))

team[2]="ドラゴン"
print(team)
print(len(team))

team.pop(2)
print(team)
print(len(team))

['勇者', '魔法使い']
魔法使い
2
['勇者', '魔法使い', '戦士']
3
['勇者', '魔法使い', 'ドラゴン']
3
['勇者', '魔法使い']
2

##演習

1.「リストに要素を追加してみよう」

lesson.py

weapon = ["木の棒", "鉄の棒", "鉄の剣", "銅の剣"]
# ここに、要素を追加するコードを記述する
weapon.append("石斧")

print(weapon)

2.リストの要素を上書きしてみよう

lesson.py

weapon = ["木の棒", "鉄の棒", "鉄の剣", "サビた剣"]
# ここに、要素を上書きするコードを記述する

#print(weapon)
weapon.pop(3)
#print(weapon)
weapon.append("石斧")
print(weapon)

3.リストから要素を削除してみよう

lesson.py

weapon = ["木の棒", "鉄の棒", "鉄の剣", "銅の剣"]
# ここに、要素を削除するコードを記述する
weapon.pop(2)
print(weapon)

##05:ループでリストを処理しよう

lesson.py
team = ["勇者", "戦士", "魔法使い","盗賊"]
#print(team)
#print(team[0])

'''
for i in range(5):
    print(i)
'''
print("<select name='job'>")
for job in team:
    print("<option>" + job +"<optiin>")
print("</select>")

##演習

1.リストの中身を1行ずつ表示してみよう

lesson.py

enemy = ["スライム", "モンスター", "ゾンビ", "ドラゴン", "魔王"]
# ここに、要素をループで表示するコードを記述する
for i in enemy:
    print(i + "が現れた!")
    

2.要素の合計を計算してみよう

lesson.py

numbers = [12, 34, 56, 78, 90]
total = 0
for num in numbers:
	# ここに、合計を計算するコードを記述する
	total += num

print(total)

##06:カンマまで区切りデータを、splitで分割しよう

lesson.py

line = input().rstrip().split(",")
print(line)
print(len(line))

for enemy in line:
    print(enemy + "が現れた!")

##演習

1.「文字列をカンマで分割してみよう」

lesson.py
team_str = "勇者,戦士,忍者,魔法使い"

print(team_str.split(","))

2.カンマ区切りデータを、splitで分割しよう

lesson.py

str = "One cold rainy day when my father was a little boy he met an old alley cat on his street"
words = str.split(" ")
print(len(words))

3.標準入力から読み込んだURLを分割しよう

lesson.py

入力

https://paiza.jp/cgc/users/ready

url_str = input().rstrip().split("/")
print(url_str)

['https:', '', 'paiza.jp', 'cgc', 'users', 'ready']

##07:複数行データをリストに格納しよう

1行のデータだけ格納

lesson.py
入力
勇者は荒野を歩いていた

line = input().rstrip()
#line = input 標準入力から1行読み込む
#rstrip関数 で文字列の末尾の改行コードを取りのぞく

出力
勇者は荒野を歩いていた

line = input().rstrip()
print(line)


複数行データをリストに格納

```lesson.py
複数行取り込みたい

for in

sys.stdin.readlines関数 ファイルを全て読み込み、1行毎に処理

import sys
line = sys.stdin.readlines()


よって

import  sys
for line in sys.stdin.readlines():
    print(line.rstrip())#文字列の末尾の改行コードを抜き出す

lesson.py

入力
勇者は荒野を歩いていた
勇者はモンスターと戦った
勇者はモンスターを倒した
勇者は世界を救った

import  sys
for line in sys.stdin.readlines():
    print(line.rstrip())



出力
勇者は荒野を歩いていた
勇者はモンスターと戦った
勇者はモンスターを倒した
勇者は世界を救った

詳しい説明

lesson.py

import  sys
for line in sys.stdin.readlines():
#readlines()変数は1度のすべての行を標準入力から読み込む
#正常に読み込めた場合は、ループ処理でline変数に渡してprintで出力
    print(line.rstrip())
#for in の1行目ではrstripが使えないのでfor ループの中で実行
#空の行でも読み込んで空の行も表示される

入力
勇者は荒野を歩いていた
勇者はモンスターと戦った

勇者は世界を救った

出力
勇者は荒野を歩いていた
勇者はモンスターと戦った

勇者は世界を救った

lesson.py

#読み込んだデータをリストに追加してループの後でまとめて表示う

import  sys
array = []#1.ループの外にarrayという空のリストを追加する
for line in sys.stdin.readlines():
    array.append(line.rstrip())#2.引数にlune.rstrip
    #print(line.rstrip())

print(array)#3.ループの後ろでprint

入力


勇者は荒野を歩いていた
勇者はモンスターと戦った
勇者はモンスターを倒した
勇者は世界を救った

出力
['勇者は荒野を歩いていた', '勇者はモンスターと戦った', '', '勇者はモンスターを倒した', '勇者は世界を救った']

#からの行含まれている

##演習

1.〜が現れた!と出力する

lesson.py
入力
スライム
モンスター
ゾンビ
ドラゴン
魔王

コード
import sys
for line in sys.stdin.readlines():
	msg = line.rstrip()
	print(msg +"が現れた")

出力
スライムが現れた
モンスターが現れた
ゾンビが現れた
ドラゴンが現れた
魔王が現れた

2.「AがB匹現れた」

lesson.py

入力
スライム,30
モンスター,23
ゾンビ,15
ドラゴン,3
魔王,1

コード
import sys
for line in sys.stdin.readlines():
	# ここに、文字列を分割して、出力するコードを書く
	enemy = line.rstrip().split(",")
#.split
	print(enemy[0]+ "" + enemy[1]+ "匹現れた")
#print(enemy[0]+ "が" + enemy[1]+ "匹現れた")

出力
スライムが30匹現れた
モンスターが23匹現れた
ゾンビが15匹現れた
ドラゴンが3匹現れた
魔王が1匹現れた

##08:リストを使ったランダムくじ

lesson.py

前回のおさらい

line = input().rstrip().split(",")
for enemy in line:
	print(enemy + "が現れた!")

入力
スライム,モンスター,ドラゴン

出力
スライムが現れた
モンスターが現れた
ドラゴンが現れた

lesson.py
line = input().rstrip().split(",")
for enemy in line:
	print(enemy + "が現れた!")

#ランダムな数を作る範囲を調べる

num=len(line)
#print(line)
print("敵は" +str(num)+ "")

入力
スライム,モンスター,ドラゴン

出力
スライムが現れた
モンスターが現れた
ドラゴンが現れた
敵は3匹

lesson.py
import random
# 標準入力から1行取得
line = input().rstrip()

# カンマで分割して、リストに代入
janken = line.split(",")

# リストの要素数を変数に代入
num = len(janken)

# リストの中身を出力
print(janken)

# ランダムに選んだリストの要素を出力
print(janken[random.randrange(num)])

```.lessonpy

##randomモジュールをインポート
import random

line = input().rstrip().split(",")
for enemy in line:
	print(enemy + "が現れた!")

#ランダムな数を作る範囲を調べる
num=len(line)
print(line)
print("敵は" +str(num)+ "")

##ランダムな数を生成→会心の一撃の対象
attack=random.randrange(num)
#print(attack)

##選んだ数に、「会心の一撃!」と表示
print(line[attack] + "に会心の一撃" + line[attack] +"を倒した")

入力
スライム,モンスター,ドラゴン,魔王

出力
スライムが現れた
モンスターが現れた
ドラゴンが現れた
魔王が現れた
['スライム', 'モンスター', 'ドラゴン', '魔王']
敵は4匹
魔王に会心の一撃魔王を倒した

##演習

1.じゃんけんプログラムを作ろう

lesson.py

import random
# 標準入力から1行取得
line = input().rstrip()

# カンマで分割して、リストに代入
janken = line.split(",")

# リストの要素数を変数に代入
num = len(janken)

# リストの中身を出力
print(janken)

# ランダムに選んだリストの要素を出力
print(janken[random.randrange(num)])

2.おみくじを作ろう

lesson.py

import random
#標準入力から1行取得
line = input().rstrip()

# 今回は自力で全部書いてみよう!

# カンマで分割して、リストに代入
omikuji = line.split(",")
##リストが生成されたことの確認
print(omikuji)
# リストの要素数を変数に代入
num = len(omikuji)
# リストの中身を出力
print(omikuji)
# ランダムに選んだリストの要素を出力
print(omikuji[random.randrange(num)])

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?