Pythonファンデーションを統合
3、リスト
「Python入門」の関連コースでは、Pythonの4つの主要なデータ構造であるリスト、タプル、辞書、セットについて学習します。その中で、リストは最も一般的に使用され、最も柔軟なデータ構造であり、リストの概念と操作についての基本的な理解もあります。今日は、これらの最も基本的な基本的な知識を一緒に確認してから、ケースを使用します。リストが実際のアプリケーションでどのように使用されているかを確認しますか?
(1)最初に確認
1、 リストの概念
Pythonのリスト(リスト)は、順序付けられたオブジェクトの柔軟なコレクションです。
1、 リストには任意の種類のオブジェクトを含めることができ、ネストすることもできます。リストには、オブジェクトの1つとして別のリストを含めることができます。
2、 リストには可変オブジェクトが含まれており、リアルタイムの変更(適切な変更)をサポートしています。
3、 リストは必要に応じて増減できます。
4、 リストの助けを借りて、スクリプトを介して任意の複雑なデータ情報をほぼ作成および処理できます。
**リストは非常に重要であり、アプリケーションは非常に一般的です。 ****
2、 リストの作成方法
カンマ区切りのオブジェクトを角括弧のペアに入れると、リストが作成されます。
list1 = [1, 2, 3, 4, 5 ]
list2 = ['a', 'b', 'c', 'd']
list3 = []#空のリストを定義する
list4 = [1、]#単一のアイテムのみ
PS:リストが変数名に割り当てられると、基本的にリストオブジェクトと変数名の間に参照が作成されます。
3、 リストの値にアクセスします
(1)インデックスを使用してリスト内の値にアクセスします
list1 = ['a', 'b', 'c', 'd', 'e']
list1[1]
' b'
(2)スライスを使用してリスト内の値にアクセスします
list1 = ['a', 'b', 'c', 'd', 'e']
print (list1[1:3])
[' b', 'c',]
4、 リストの更新
(1)インデックスを介して、指定した添え字の値を直接再割り当てします。
(2)append()メソッドを使用して、リストの最後に新しい項目を追加します。
(3)delステートメントを使用して、インデックスで指定された添え字を持つアイテムを削除します。
list1 = ['a', 'b', 'c', 'd', 'e']
list1[3] = 'f'
print(list1)
[' a', 'b', 'c', 'f', 'e']
list1.append('d')
print(list1)
[' a', 'b', 'c', 'f', 'e', 'd']
del list1[2]
print(list1)
[' a', 'b', 'f', 'e', 'd']
5、 リスト操作機能
len(['a'、 'b'、 'c'、 'd'、 'e'])#リストの長さを取得します
5
[' a '、' b '、' c '、' d '、' e '] + [' f '、' g '、' h ']#リストの組み合わせ(追加)
[' a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
[' a '、' b '、' c '] * 2#list繰り返し
[' a', 'b', 'c','a', 'b', 'c']
3 [1,2,3] #in演算子で、要素が存在するかどうかを判断します
True
[1,2,3] #Iteration(traversal)のxの場合
1 2 3
max([1,2,3,4,5])#リストの最大値を取得する
5
min([1,2,3,4,5])#リストの最小値を取得する
1
range(5)#連続する整数のリストを作成する
[0,1,2,3,4]
PS:プラス記号+の両側はリストでなければなりません。リストと文字列を一緒に追加することはできません。
6、 リスト操作方法
(1)、list.append(obj):リストの最後に新しいオブジェクトを追加します。
(2)、list.count(obj):要素がリストに表示される回数をカウントします。
(3)、list.index(obj):リストから特定の値の最初に一致するアイテムのインデックス位置を見つけます。
(4)、list.insert(index、obj):オブジェクトをリストに挿入します(指定されたインデックス位置の前)。
(5)、list.pop(obj = list [-1]):リストから要素(デフォルトでは最後の要素)を削除し、要素の値を返します。
(6)、list.remove(obj):リスト内の値の最初の一致を削除します。
(7)、list.reverse():元のリストの逆の配置。
(8)、list.sort([func]):元のリストを並べ替えます。
(9)、list.extend(seq):リストの最後に別のシーケンス値を追加します。
文字列のシーケンスを追加するときの状況に注意してください:
[1,2,3]. extend(‘xyz’)
[1,2,3, ’x’,’y’,’z’]
(2)、ケースアプリケーション
次の表は、企業の従業員評価フォームです
従業員ID | 仕事の経験 | 給与等級 | 出席率 | 残業 | パフォーマンス |
---|---|---|---|---|---|
1001 | 3 | 5 | 100 | 16 | 50000 |
1002 | 1 | 1 | 80 | 0 | 3000 |
1003 | 2 | 3 | 90 | 10 | 23000 |
1004 | 4 | 6 | 95 | 20 | 45000 |
1005 | 5 | 7 | 100 | 30 | 65000 |
パフォーマンスの評価とボーナスの計算の過程で、さまざまな評価項目の重みに応じて最終的なパフォーマンスボーナスを計算する必要があります。計算ルールは次のとおりです(合理的であると仮定)。
従業員ボーナス=パフォーマンス* [(勤続年数/ 30)* 0.2 +(給与等級/ 12)* 0.3 +(出席率/ 100)* 0.3 +(残業数/ 120)* 0.2] / 10
では、Pythonを使用してこのような給与管理システムを開発する場合、この問題が発生した場合、Pythonプログラムはこのデータをどのように処理し、各従業員のボーナスを最速で計算する必要がありますか?
このような要求に直面した場合、プログラマーとして、次のように考える必要があります。
1、 アプリケーションシステムとして、私たちが作成したプログラムは、今月この5人のボーナスを計算することではありませんが、ルールに従って、毎月各人のボーナスを計算するために使用できます。
2、 1人の完全な情報でその人のボーナス額を計算でき、全員のアルゴリズムは同じです。次に、データベース内の(販売)従業員の総数に従って繰り返すだけで、全員のボーナスを計算できます。
3、 各人の完全なデータ情報がリストを構成し、さまざまなインデックス値が1つのデータ項目を表し、その人のボーナスを計算するために使用できます。
# ステップ1:データベースのデータを読み取る
user_info_table = []
user_info_table.append([1001,3,5,100,16,50000])
user_info_table.append([1002,1,1,80,0,3000])
user_info_table.append([1003,2,3,90,10,23000])
user_info_table.append([1004,4,6,95,20,45000])
user_info_table.append([1005,5,7,100,30,65000])
**# ステップ2:要素が従業員IDとボーナスのタプルで構成される新しいリスト。 ****
user_reward_list = []
**# 3番目のステップ:従業員データテーブルをループで繰り返し、各従業員のボーナスを計算します。 ****
for x in user_info_table:
user_id = x [0]#従業員IDを取得
報酬= x [5] * [(x [1] / 30)* 0.2 +(x [2] / 12)* 0.3 +(x [3] / 100)* 0.3 +(x [4] / 120)* 0.2] / 10#ボーナスを計算する
user_reward =(user_id、reward)#タプルを作成する
user_reward_list.appned(user_reward)#リストにタプルを追加する
for x in user_reward_list: print(x)
(1001, 2358.50)
(1002, 81.5)
(1003, 862.43)
(1004, 2226.15)
(1005, 3627.00)]
どうですか?
一見複雑な問題、
リストをうまく利用すると、
情報処理、
とてもシンプルになります!
Recommended Posts