Python for Coding Test(2)リスト(List)
36522 ワード
リスト(List)はPythonのデータ構造であり、値をリストする配列と考えられる.Listはstring,tupleとともに順序のある資料型である.
Pythonのlistは他の言語のlistと少し違います.Pythonとともに用いた符号化試験用のC++と比較すると,C++のSTLが提供するVectorデータ型と類似していると考えられる.
append()メソッドとremove()メソッドを提供するリンクリストを使用します.
リストの要素
これらの要素はカッコ([])で囲まれてリスト化できます.
リストは文字列のようにインデックス化することもできます.では、文字列インデックスと同じ方法を使用します. リストがにある場合、インデックスはC++の2次元配列のように作成できます. の使用方法は文字列のスライドと同じです. リストのリストにインデックスを作成することもできます.
リストは文字列のように+と*の演算もできます.
リスト値の変更リストのインデックスを使用して、値にアクセスして変更できます. del関数で削除できます. del関数はオブジェクトを削除するので、斜線を使用して複数の要素を削除できます.
append関数 append(x):リストの末尾にxを追加します. C++ベクトルのpush back関数と同じです. insert(idx,value):リストのidx位置に値を追加します. 注:リストのインデックスは0から始まります.注意:insertの時間的複雑度はO(N)であるため、appendが使用可能な場合にはappendを使用することが望ましい. remove(x):リストの最初のxを削除します. 注意:removeも同様に時間複雑度がO(N)であり、ある値を繰り返す場合はsetを使用することが望ましい. pop():リストから削除し、リストの末尾の要素を返します. pop(idx):リストidxの位置の要素を削除して返します. sort():リスト内の要素を順番に並べます. sort(reverse=True)で降順にソートできます. 反転():リストの順序を現在の状態から反転します. index(x):xの初期位置を返します. count(x):xが配列内に何個あるかを返します. extend(x):リストxをマージします. xの位置はリスト資料型のみです.
コードの簡潔さを追求するPythonのように、リストでfor文を使用することができます.
△最初はこれを知らなかったので、for文でリストをifにまとめました.
forゲートとともにifゲートを使用します.
また、他の言語の配列とは異なり、Vectorの性質を持っている点が非常に大きなメリットです.appendとremoveが提供されているので、配列のサイズやインデックスを毎回考慮する必要はありません.
参考資料
WikiDocs JumptoPython-02-3リスト資料型
Pythonのlistは他の言語のlistと少し違います.Pythonとともに用いた符号化試験用のC++と比較すると,C++のSTLが提供するVectorデータ型と類似していると考えられる.
append()メソッドとremove()メソッドを提供するリンクリストを使用します.
リストの要素
これらの要素はカッコ([])で囲まれてリスト化できます.
a = [] # 원소가 들어있지 않은 리스트도 리스트
b = [0, 1, 2, 3] # 숫자 자료형 저장
c = ['Hello', 'World!'] # 문자열도 저장할 수 있다.
d = [0, 'zero'] # 여러 자료형을 함께 저장할 수 있다.
e = [0, [1,2], [3,4,5]] # 리스트 안에 또 다른 리스트를 넣을 수 있다.
索引とスライドリストは文字列のようにインデックス化することもできます.
a = ['zero', 'one', 'two', 'three', ['four', 'five']]
print(a[0])
>> zero
print(a[3])
>> three
print(a[-1])
>> ['four','five']
print(a[4][1]) # 이중 리스트 인덱싱
>> five
対応するインデックスを使用してスライドすることもできます.a = ['zero', 'one', 'two', 'three', ['four', 'five']]
print(a[:2])
>> ['zero', 'one']
print(a[2:])
>> ['two', 'three', ['four', 'five']]
print(a[1:3])
>> ['one', 'two']
print(a[4][:1]) # 이중 리스트의 슬라이싱
>> ['four']
リスト演算リストは文字列のように+と*の演算もできます.
a = [1, 2, 3]
b = [4, 5, 6]
print(a+b)
>> [1, 2, 3, 4, 5, 6]
print(a*3)
>> [1, 2, 3, 1, 2, 3, 1, 2, 3]
リストの長さはlen関数で求めることができます.a = [1, 2, 3, 4, 5]
print(len(a))
>> 5
for文を使用してリストの要素にアクセスするには、次の方法を使用します.a = [1, 2, 3, 4, 5]
for i in a: # element 들에 접근
print(i, end=" ")
>> 1 2 3 4 5
for idx in range(len(a)): # 인덱스로 접근
print(a[idx], end=" ")
>> 1 2 3 4 5
# enumerate를 사용하면 매 반복마다 리스트의 인덱스와 값을 튜플로 반환한다.
for idx, value in enumerate(a):
print(idx, value)
>> (0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
リストの変更、削除リスト値の変更
a = [1, 2, 3, 4, 5]
a[1] = 10
print(a)
>> [1, 10, 3, 4, 5]
リスト要素の削除a = [1, 2, 3, 4, 5]
del a[1]
print(a)
>> [1, 3, 4, 5]
del a[2:] # 슬라이싱을 통한 삭제도 가능하다.
>> [1, 3]
List相関関数append関数
a = [1, 2, 3, 4, 5]
a.append(6)
print(a)
>> [1, 2, 3, 4, 5, 6]
# 문자열을 비롯한 어떤 자료형도 추가할 수 있다.
a.append('seven')
print(a)
>> [1, 2, 3, 4, 5, 6, 'seven']
a. append([8, 9])
print(a)
>> [1, 2, 3, 4, 5, 6, 'seven', [8, 9])
Insert関数a = [1, 3, 4, 5]
a.insert(1,2)
print(a)
>> [1, 2, 3, 4, 5]
remove関数a = [1, 2, 2, 3]
a.remove(2)
print(a)
>> [1, 2, 3]
pop関数a = [1, 2, 3, 4]
b = a,pop()
print(a)
>> [1, 2, 3]
print(b)
>> 4
b = a.pop(0)
print(a)
>> [2, 3]
print(b)
>> 1
sort関数とreverse関数a = b = [2, 3, 5, 1, 4]
a.sort()
print(a)
>> [1, 2, 3, 4, 5]
b.reverse()
print(b) >> [4, 1, 5, 3, 2]
index関数a = [1, 2, 2, 3, 4]
print(a.index(2))
>> 1
print(a.index(3))
>> 3
print(a.index(5))
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> ValueError: 5 is not in list
count関数a = [1, 2, 3, 3, 3]
print(a.count(2))
>> 1
print(a.count(3))
>> 3
拡張関数a = [1, 2, 3]
a.extend([4, 5])
print(a)
>> [1, 2, 3, 4, 5]
b = [6, 7]
a.extend(b)
print(a)
>> [1, 2, 3, 4, 5, 6, 7]
listでfor文を使用するコードの簡潔さを追求するPythonのように、リストでfor文を使用することができます.
△最初はこれを知らなかったので、for文でリストをifにまとめました.
forゲートとともにifゲートを使用します.
a = [1, 2, 3, 4, 5, 6]
print([item for item in a if item % 2 == 0])
>> [2, 4, 6]
今は単純な段階の問題しかやっていませんが、リスト資料型は本当にたくさん使われているようです.特に,リストスクライブにより解答のコード長を大幅に短縮できる.また、他の言語の配列とは異なり、Vectorの性質を持っている点が非常に大きなメリットです.appendとremoveが提供されているので、配列のサイズやインデックスを毎回考慮する必要はありません.
参考資料
WikiDocs JumptoPython-02-3リスト資料型
Reference
この問題について(Python for Coding Test(2)リスト(List)), 我々は、より多くの情報をここで見つけました https://velog.io/@ohzzi/Python-for-Coding-Test-2-리스트Listテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol