5月21日(ソート)

ページ名:5月21日

今日の資料

https://drive.google.com/file/d/1EYzwYkNmIxpWxd2C8D1DtWDN06aMFiDx/view?usp=sharing

 

最小値の計算とその応用


最小値を求めるプログラム

numbers = [25, 10, 40, 15, 35, 30]
min = numbers[0]
for number in numbers:
    if number < min:
        min = number
'最小の数字は' + str(min) + 'です'

最小値が何番地にあるかを求めるプログラム


numbers = [25, 10, 40, 15, 35, 30]
min = numbers[0] #最小値
mini = 0 #最小値が何番地にあるか
i = 0 #いま何番地を検査値しているか
for number in numbers:
    if number < min:
        min = number
        mini = i
    i = i + 1
'最小値は' + str(mini) + '番地にあります'

 

リストの操作(append, pop)


append:指定した値をリストの末尾に追加する


#名前のリストに対して「様」を付けたリストを作る
list = ['田中', '加藤', '山田', '中村']
newlist = [] #空のリストを作る
for name in list:
    newlist.append(name + '様')
newlist

pop:指定した番地の要素を取り出して削除する。
ただし、番地の指定が無い場合、末尾の要素を取り出す


tokio = ['城島','国分','松岡','山口','長瀬']
dattai = tokio.pop(3)
print(dattai)
print(tokio)

whileによるループ

例題:リストを逆順にするプログラム


list = ['田中', '加藤', '山田', '中村']
newlist = []
while len(list) > 0:
    newlist.append(list.pop())
newlist

途中経過を表示する


list = ['田中', '加藤', '山田', '中村']
newlist = []
while len(list) > 0:
    newlist.append(list.pop())
    print(list)
    print(newlist)
    print('----')
newlist

 

並べ替え(ソート)プログラム


数字のリストに対して、小さい順に並べ替えたリストを作るプログラムを書きなさい


numbers = [25, 10, 40, 15, 35, 30]
→newnumbers = [10, 15, 25, 30, 35, 40]


考え方:

  1. 元のリストから最小値を見つける
  2. その値を元のリストから抜き出して新しいリストの最後に加える
  3. これを、元のリストが空になるまで繰り返す

numbers = [25, 10, 40, 15, 35, 30]
newnumbers = []
while len(numbers) > 0:
    min = numbers[0]
    i = 0
    mini = 0
    for number in numbers:
        if number < min:
            min = number
            mini = i
        i = i + 1
    newnumbers.append(numbers.pop(mini))
newnumbers

関数の定義と利用


def aisatsu(name)
    return name + 'さん、こんにちは!'

people = ['山田', '中村', '田中']
for person in people:
    print(aisatsu(person))

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧