目次
1つ:シーケンス
Pythonでは、シーケンスは最も基本的なデータ構造であり、複数の値を格納するために使用される連続したメモリ空間です。
Pythonには、リスト、タプル、セット、辞書、文字列の5つの一般的に使用されるシーケンス構造が組み込まれています。
次に、シーケンスの一般的な操作を紹介します。
1.1インデックス
Pythonのすべての要素には番号があり、これもインデックスになります。このインデックスは0からインクリメントされます。
[注]:Pythonのインデックスは特別であり、そのインデックスは負の値になる可能性があり、負の数のインデックスは右から左にカウントされます。
つまり、最後の要素から数えます。つまり、最後の要素のインデックス値は-1です。
verse = ["春天","夏天","秋天","冬天"]
print(verse[2]) #秋天
print(verse[-1]) #冬天
1.2スライス
スライスは、シーケンス内の要素にアクセスするもう1つの方法であり、特定の範囲内の要素にアクセスできます。スライス操作により、新しいシーケンスを生成できます。
スライス操作の構文:
sname [start : end : step] #コンマではなくコロンを使用します。間隔は閉じたままにし、右に開きます。
verse = ["春天","夏天","秋天","冬天"]
print(verse[1:3:1]) #['夏天', '秋天']
1.3シーケンスの追加
Pythonでは、2種類のシーケンス追加操作がサポートされています。つまり、(+)演算子を使用して、重複する要素を削除せずに2つのシーケンスを接続します。
verse = ["春天","夏天","秋天","冬天"]
verse2 = ["昨天","今天","明天"]
print(verse+verse2)
#['春天', '夏天', '秋天', '冬天', '昨天', '今天', '明天']
【説明】:シーケンスを追加する場合、同じタイプのシーケンスとは、リスト、タプル、セットなどが同じであり、シーケンス内の要素のタイプが異なる場合があることを意味します。
1.4シーケンスの乗算
Pythonでは、シーケンスに数値nを掛けると、新しいシーケンスが生成されます。新しいシーケンスの内容は、元のシーケンスがn回繰り返された結果です。
phone = ["apple","华为","小米"]
print(phone*3)
#['apple', '华为', '小米', 'apple', '华为', '小米', 'apple', '华为', '小米']
1.5要素がシーケンスのメンバーであるかどうかを確認します
inキーワードは、要素がシーケンスのメンバーであるかどうかをチェックします
not inキーワードは、要素が指定されたシーケンスに含まれていないかどうかをチェックするために実装されます
1.6シーケンスの長さ、最大値、最小値を計算します
len()関数:シーケンスに含まれる要素の数を返します
max()関数:シーケンス内の最大の要素を返します
min()関数:シーケンス内の最小の要素を返します
num = [12,14,66,9,245,1,90]
print(len(num)) #7
print(max(num)) #245
print(min(num)) #1
1.7シーケンスの他の組み込み関数
list():シーケンスをリストに変換します
str():シーケンスを文字列に変換します
sum():要素の合計を計算します
sort():要素をソートします
reverse():シーケンス内の要素を逆にします
enumerate():シーケンスをインデックスシーケンスに結合します。これは主にforループで使用されます。
2番目のリスト
2.1リストの作成と削除
1)代入演算子を使用して、リストを直接作成します
list1 = ["我是最棒的","我是做大事的人","我一定会成功"]
2)空のリストを作成します
emptylist = []
3)値のリストを作成します
list()関数を使用する
list2 = list(["hello","world"])
#注意中括号不能省掉
list()関数を使用して、range()関数のループ結果をリストに直接変換することもできます。
list(range(10,20,2))
4)リストを削除します
del listname
2.2アクセスリスト
list1 = ["我是最棒的","我是做大事的人","我一定会成功"]
print(list1[2]) #我一定会成功
前述のindex()を使用することもできます
2.3リストをトラバースする
1)forループを直接使用して
for item in listname:
print(item)
2)forループとenumerate()関数を使用して、インデックス値と要素の内容を同時に出力します
list1 = ["我是最棒的","我是做大事的人","我一定会成功"]
for index, item in enumerate(list1):
print(index,item) #我一定会成功
#0 我是最棒的
#1 我是做大事的人
#2 我一定会成功
補足:Pythonのprint()関数は、デフォルトで出力をラップします。出力をラップしないために、print()で "end = ''"を使用できます。
2.4リスト要素の追加、変更、削除
1)要素を追加する
プラス記号「+」を使用して2つのシーケンスを接続することに加えて、append()メソッドを使用することをお勧めします。
phone = ["oppo","三星","小米","华为"]
phone.append("apple")
print(len(phone))
print(phone)
さらに、insert()メソッドを使用して、リストの指定された位置に要素を挿入することもできますが、このメソッドは効率的ではありません。
補足:あるリストのすべての要素を別のリストに追加する場合は、リストオブジェクトのextend()メソッドを使用できます。
phone1 = ["oppo","三星","小米","华为"]
phone2 = ["诺基亚","魅族"]
phone1.extend(phone2)
print(phone1)
#['oppo', '三星', '小米', '华为', '诺基亚', '魅族']
2)要素を変更する
要素を変更するには、インデックスを介して要素を取得し、それを再割り当てするだけです。
phone1 = ["oppo","三星","小米","华为"]
phone1[2]= "红米"
print(phone1)
# ['oppo', '三星', '红米', '华为']
3)要素を削除する
- インデックスに従って削除
del phone[1]
- 要素値に基づいて削除
phone.remove("华为")
2.5リストの統計と計算
1)指定された要素の出現回数を取得します
phone1 = ["oppo","三星","小米","华为","oppo"]
print(phone1.count("oppo")) #2
2)指定された要素の最初の出現のインデックスを取得します
phone1 = ["oppo","三星","小米","华为","oppo"]
print(phone1.index("oppo")) #
3)統計値のリストの要素と
grade = [222,44,66,88,9,2]
print(sum(grade)) #431
2.6リストを並べ替える
1)sort()メソッドを使用します:元のリストが変更されます
grade = [222,44,66,88,9,2]
print(grade.sort()) #None
print(grade) #[2, 9, 44, 66, 88, 222]
デフォルトは昇順です。降順で並べ替える場合は、reverse = Trueを使用する必要があります。
grade = [222,44,66,88,9,2]
grade.sort(reverse=True)
print(grade) #[222, 88, 66, 44, 9, 2]
2)組み込みのsorted()関数を使用して
sort()メソッドがソートされた後、元のリストのコピーが作成されるため、元のリストの要素の順序は変更されないことに注意してください。
grade = [222,44,66,88,9,2]
new_grade= sorted(grade)
print(grade) #[222, 44, 66, 88, 9, 2]
print(new_grade) #[2, 9, 44, 66, 88, 222]
2.7リスト内包
リスト内包表記を使用して、リストをすばやく生成します
list = [expression for var in range]
import random
randomnumber = [random.randint(10,100) for i in range(10)]
print(randomnumber)
#[84, 20, 73, 31, 31, 76, 30, 80, 45, 53]
2.82次元リスト
1)2次元リストを直接定義する
list1 = [['a','b','c'],['d','e','f'],['q','w','e'],['a','s','d']]
print(list1)
# [['a', 'b', 'c'], ['d', 'e', 'f'], ['q', 'w', 'e'], ['a', 's', 'd']]
2)ネストされたforループの作成を使用する
arr = []
for i in range(4):
arr.append([])
for j in range(5):
arr[i].append(j)
print(arr)
# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
3)リスト内包表記を使用して作成する
arr = [[j for j in range(5)] for i in range(4)]
print(arr)
# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
トライアド
3.1タプルの作成と削除
1)代入演算子を使用して、タプルを直接作成します
num1 = (12,34,67,11,3,99)
print(num1)
print(type(num1))
#(12, 34, 67, 11, 3, 99)
#<class 'tuple'>
2)空のタプルを作成します
emptytuple = ()
3)数値要素を作成する
print(tuple(range(10,20,2)))
#(10, 12, 14, 16, 18)
4)要素を削除する
del tuplename
3.2タプル要素へのアクセス
team = ("火箭","骑士","快船","湖人")
print(team[1])
for index, item in enumerate(team):
print(index,item)
#骑士
#0 火箭
#1 骑士
#2 快船
#3 湖人
3.3タプル要素の変更
タプルは不変のシーケンスであるため、その単一要素の値を変更することはできません。
ただし、タプルは完全に変更できないわけではありません。タプルを再割り当てできます。
coffeename = ("拿铁","卡布奇诺","曼特宁")
coffeename = ("拿铁2","卡布奇诺3")
print(coffeename) #('拿铁2', '卡布奇诺3')
3.4タプルの理解
#タプルに変換するには、tuple()関数を使用します
import random
randomnumber = (random.randint(10,100) for i in range(10))
randomnumber = tuple(randomnumber)
print(randomnumber)
# (69, 30, 31, 50, 22, 86, 50, 32, 29, 85)
4.辞書
リストと同様に、辞書も可変シーケンスですが、リストとは異なり、順序付けられていない可変シーケンスです。
保存されたコンテンツは、キーと値のペアの形式で保存されます。
キーは一意であり、複数の値があります
同じキーを2回表示することはできません。2回表示すると、後者の値が記憶されます。
4.1辞書の作成と削除
1)辞書を作成するには、コロンを使用してキーと値を区切り、隣接する2つの要素をコンマで区切り、すべての要素を「{}」のペアに配置します。
dictionary = {"qq":"282439859","bolg":"yezonghui"}
print(dictionary)
print(type(dictionary))
#{'qq': '282439859', 'bolg': 'yezonghui'}
#<class 'dict'>
2)マッピング機能を使用して辞書を作成します
di = dict(zip(list1,list2))
補足:zip()関数:複数のリストまたはタプルの対応する位置にある要素をタプルに結合し、これらのコンテンツを含むzipオブジェクトを返すために使用されます
name = ["q","w","e","r"]
sign = ["1","2","3","5"]
dirctionary2 = dict(zip(name,sign))
print(dirctionary2)
# {'q': '1', 'w': '2', 'e': '3', 'r': '5'}
4.2キーと値のペアを介した辞書へのアクセス
[]またはget()メソッドを使用します
d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
print(d1["夏天"]) #学数学
print(d1.get("秋天")) #学英语
4.3辞書の反復
辞書ビューを取得します。
keys():辞書内のすべてのキーを取得します
values():辞書内のすべての値を取得します
items():ディクショナリ内のすべてのキーと値のペアを取得します
d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
for item in d1.items():
print(item)
#('春天', '学语文')
#('夏天', '学数学')
#('秋天', '学英语')
#('冬天', '学历史')
d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
for key,value in d1.items():
print(key,value)
#春天 学语文
#夏天 学数学
#秋天 学英语
#冬天 学历史
4.4辞書要素の追加、変更、削除
直接追加
d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
d1["今天"] = "学习"
print(d1)
#{'春天': '学语文', '夏天': '学数学', '秋天': '学英语', '冬天': '学历史', '今天': '学习
削除
del d1["春天"]
4.5辞書の理解
import random
ranomdict = {i:random.randint(10,100) for i in range(1,5)}
print(ranomdict)
#{1: 77, 2: 77, 3: 100, 4: 79}
5.コレクション
5.1コレクションの作成
1){}を使用して直接作成します
set1 = {1,4,6,7}
2)set()関数を使用して作成
set1 = set(1,2,3,4,8)
[注]:空の辞書を作成する場合、{}のペアは空の辞書を作成することを意味するため、set()のみを使用できます。
5.2コレクションの追加と削除
1)add()メソッドを使用して、コレクションに要素を追加します
2)remove()を使用してコレクションから要素を削除します
5.3セット操作
1)2つのセットは等しい==または!=
2)それはサブセットissubset()ですか
3)それがスーパーセットであるかどうか:issuperset()
4)交差点:&またはintersection()
5)ユニオン:|またはunion()
6)違い:-またはdifference()
[注]:シーケンス内の文字列の学習は、次のブログで要約されます