開始するには0
- @:メソッド割り切れを降ろします
- **:パワー
- 対話モードでは、最後に印刷された式は、変数に代入されます
_
- あなたが前にしたくない場合は
\
文字はなどの特殊文字をエスケープし、あなたが使用することができ、元の文字列の前に引用符を追加し、モードをr
することができます - 、B = B + B:パイソンのような複数の割り当て、とすることができます
1つのデータの種類と構造
1.1デジタル
1.2シーケンス - 文字列
ストリングができ
+
(一緒に接着)が接続され、それを使用することも可能で*
繰り返し隣接する2つ以上の文字列リテラル(引用符で囲まれた文字)が自動的に一緒に接続されます
リンク変数とリテラルは、+記号は省略する必要はありません
リストには、可能な文字列であるインデックス付き(インデックス付きアクセス)、最初の文字のインデックスは0です。単一の文字や特別なタイプが、文字列の長さ
Python文字列を変更することができないので、割り当ては、文字列のインデックスにエラーが発生しますが、リストを変更することができます
負のインデックスはまた、右からカウントを開始しますこれ、使用することができます
インデックスに加えて、文字列のサポートセクションを。インデックスは、単一の文字にすることができ、スライスは、サブストリングを取得することができます
デフォルトでは省略されている開始インデックスは0、デフォルトが省略され、インデックスの最後に文字列の末尾であるスライスのインデックスは、デフォルト値を有します
注スライスは、常に結果に含まれ始めるが、最後は含まれていません
1.3シーケンス - リスト
- 例えば= [2,4,4,5,6,7]
- サポートスプライシング操作+
- ネストできる代入A = [2,3,4]、[4,5,6]
- [:]リスト内のすべての要素の指標となります
1.3.1リストの多くの機能
>>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
>>> fruits.count('apple')
2
>>> fruits.count('tangerine')
0
>>> fruits.index('banana')
3
>>> fruits.index('banana', 4) # Find next banana starting a position 4
6
>>> fruits.reverse()
>>> fruits
['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
>>> fruits.append('grape')
>>> fruits
['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']
>>> fruits.sort()
>>> fruits
['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']
>>> fruits.pop()
'pear'
list.append(X)
リストの最後に要素を追加します。等価
a[len(a):] = [x]
。list.extend(反復可能)
リストを展開するために反復可能で、すべての要素を使用してください。等価
a[len(a):] = iterable
。list.insert(I、X)
指定された位置に要素を挿入します。最初のパラメータは、挿入される要素のインデックスであり、
a.insert(0, x)
リストの挿入ヘッド、a.insert(len(a), x)
と等価ですa.append(x)
。list.remove(X)
リストの最初の値除去のx要素。そのような要素場合は、投げる
ValueError
例外を。list.pop([ I ])
指定された場所での要素のリストを削除し、それを返すには。場所が指定されていない場合、
a.pop()
それはリストの最後の要素を削除して返します。(メソッドのシグネチャ私角括弧は、パラメータがオプションであることを示し、角括弧を入力するように求めていない。あなたは、多くの場合、Pythonのリファレンスライブラリ内の表現のこの種を見ることができます)。list.clear()
リスト内のすべての要素を削除します。等価
del a[:]
。list.index(X [、開始 [、終了 ]])
最初の値のリストを返し、X元素の0から始まるインデックスを。そのような要素は投げません場合は
ValueError
、例外を。オプションのパラメータは、開始と終了検索リストを制限するために、特定のサブシーケンスのシンボルをスライスしています。返されたインデックスは、代わりに、全体のシーケンスの計算の開始を基準と開始パラメータ。list.count(X)
要素を返しますXのリスト中の出現回数を。
list.sort(キー=なし、偽=リバースません)
リスト内の要素(注文したカスタムパラメータを使用することができ、説明を参照してください並べ替えられています
sorted()
)。list.reverse()
要素のリストが逆転しています。
list.copy()
リストのシャローコピーを返します。に相当
a[:]
1.3.2リストの使用(LIFO)スタックなど
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
- スタック法などを一覧リストは、最初に挿入された最後の(「LIFO」)撤回する、非常に容易です。スタックの先頭に項目を追加するには、使用します
append()
。スタック要素の上から削除し、使用してpop()
キュー(FIFO)としてリストを使用して1.3.3
>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry") # Terry arrives
>>> queue.append("Graham") # Graham arrives
>>> queue.popleft() # The first to arrive now leaves
'Eric'
>>> queue.popleft() # The second to arrive now leaves
'John'
>>> queue # Remaining queue in order of arrival
deque(['Michael', 'Terry', 'Graham'])
>>> # flatten a list using a listcomp with two 'for'
>>> vec = [[1,2,3], [4,5,6], [7,8,9]]
>>> [num for elem in vec for num in elem]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
- この目的のために使用されるが、むしろ非効率的なリストを、要素が最初の抽出(「FIFO」)に追加されるキューリストはまた、使用されてもよいです。挿入したり(他のすべての要素が1つシフトする必要があるとして)の要素を取り出すために、リストの先頭にポップな要素と非常に高速なリストの最後に、しかし非常に遅いを追加するため。
- キューを実装するには、
collections.deque
両端からすぐに動作するように設計されて
1.3.4リストの内包表記
squares = [x**2 for x in range(10)]
- 続いて式:括弧の対によって一覧状構造を導出するには、以下が含まれる
for
句、ゼロ以上for
、またはif
句。結果が戻って、表現の基礎と新しいリストになりますfor
とif
句の内容を計算する派生評価
1.4デル声明
>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]
- あなたは、リストから要素を削除する代わりに、値の指定されたインデックスに従うことができます
- デルはまた、全体の変数を削除するために使用することができます
1.5シーケンス - タプル
カンマで区切られたタプルいくつかの値
>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>> # Tuples may be nested:
... u = t, (1, 2, 3, 4, 5)
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
>>> # Tuples are immutable:
... t[0] = 88888
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> # but they can contain mutable objects:
... v = ([1, 2, 3], [3, 2, 1])
>>> v
([1, 2, 3], [3, 2, 1])
- タプル出力は常に正しく入れ子のタプルを示すために、括弧で囲まれています
- 単一要素のタプルへの代入が許可されていない、もちろん、あなたはタプルを作成することができ、可変オブジェクトが含まれています
- 一方で、タプルのリストは次のようになりかもしれないが、彼らは通常、異なるシナリオ、および異なる目的で使用されています。タプルは、典型的には、要素の種類を含み、解凍するか、インデックスによってアクセスされる配列、不変です。
- リストは可変であり、リスト内の要素は、一般に、同じタイプであり、そして反復を介してアクセス
- 空のタプルを直接括弧の空の対によって作成することができます
- 1組の元素を含有することは、この要素の後にコンマを追加することによって構築することができます
t=12345,54321,'hello!'
x,y,z=t
- ステートメントが
t = 12345, 54321, 'hello!'
あるパッケージ化タプル例:値12345
、54321
および'hello!'
タプルに充填しました。逆動作も許可されています - X、Y、Z = Tはと呼ばれアンパック配列が等号アンパック動作の右側は、任意の配列であり得るためにも適切です。同じ数の要素がアンパック必要なシーケンス番号左変数と右等号の内部に含まれる配列です。なお、実際には、唯一の可変パラメータタプル梱包と開梱シーケンスの組み合わせ。
1.6ハッシュ - コレクション
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # show that duplicates have been removed
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # fast membership testing
True
>>> 'crabgrass' in basket
False
>>> # Demonstrate set operations on unique letters from two words
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a # unique letters in a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # letters in a but not in b
{'r', 'd', 'b'}
>>> a | b # letters in a or b or both
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # letters in both a and b
{'a', 'c'}
>>> a ^ b # letters in a or b but not both
{'r', 'd', 'b', 'm', 'z', 'l'}
- Pythonはまた、含まれているのコレクションのタイプを。要素の順序なしコレクションのセットが繰り返されることはありません。重複したエントリを検出して排除するのメンバーを含む基本的な使い方。オブジェクトのコレクションはまた、関節、交差点、差、対称差と他の数学演算をサポートするように。
- 中括弧や
set()
機能は、コレクションを作成するために使用することができます。注:のみ使用することができます空のセットを作成するにはset()
使用するのではなくを{}
、後者は空の辞書を作成することであるとして、
1.7ハッシュ - 辞書
>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'jack': 4098, 'sape': 4139, 'guido': 4127}
>>> tel['jack']
4098
>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> list(tel)
['jack', 'guido', 'irv']
>>> sorted(tel)
['guido', 'irv', 'jack']
>>> 'guido' in tel
True
>>> 'jack' not in tel
False
- 辞書は、キーワードインデックスの、キーは任意の不変のタイプ、通常は文字列または数値のいずれかになります。タプルは文字列、数値、またはタプルのみが含まれている場合、タプルはキーとして使用することができます。タプルは、直接的または間接的に何らかの変更可能なオブジェクトが含まれている場合でも、それがキーワードとして使用することはできません。
- キーワードのリストは、インデックスリスト、またはスライスするので、使用することはできない
append()
、とextend()
変更の方法など。 - 辞書として見ることができる値:キーキーが(辞書で)一意である必要があり、ペア。中括弧のペアは空の辞書を作成することができます
{}
。別の方法は、中括弧の対辞書代わりにカンマで区切られたキーと値のペアの一部を初期化することであり、これは、出力辞書方法です。 - 辞書の主な操作は、キーワードの分析値を格納し、使用することです。また、使用することができ
del
、キーと値のペアを削除します。あなたは既に存在する値を格納するためにキーワードを使用する場合は、この値に関連付けられたキーワードの前に忘れ去られます。存在しない値にキーが与えられます使用してください。 - 辞書行う
list(d)
辞書のすべてのキーのリストを返すであろうが、(他の種類のために使用される挿入順に配置されていますsorted(d)
)。辞書内の特定のキーをチェックするには、使用することができますin
キーワードを。
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'guido': 4127, 'jack': 4098}
#dict() 构造函数可以直接从键值对序列里创建字典。
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
#字典推导式可以从任意的键值表达式中创建字典
>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'guido': 4127, 'jack': 4098}
#当关键字是简单字符串时,有时直接通过关键字参数来指定键值对更方便
1.8サイクル
1.8.1循環辞書
辞書内を循環するときにitems()
缶と同時のキーワード抽出方法に対応する値
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
... print(k, v)
...
gallahad the pure
robin the brave
1.8.2ループ配列
- 配列内を循環するとき、列挙()関数は、その位置に対応するインデックス値であると同時に除去することができ
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
... print(i, v)
...
0 tic
1 tac
2 toe
- ときに、2つ以上の配列で循環させながら、可)11 ZIPを(一致する要素内の機能。
questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
print('What is your {0}? It is {1}.'.format(q, a))
1.8.3リバース循環
次いで、配列の逆サイクル、正の第1標的配列、及び逆()関数を呼び出すと
>>> for i in reversed(range(1, 10, 2)):
... print(i)
...
9
7
5
3
1
内容に1.8.4サイクルを変更します。
時には、一般的に新しいリストを作成代わりに話すことは比較的簡単で、安全で、サイクルの時点で内容のリストを変更したい場合があります
>>> import math
>>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]
>>> filtered_data = []
>>> for value in raw_data:
... if not math.isnan(value):
... filtered_data.append(value)
...
>>> filtered_data
[56.2, 51.7, 55.3, 52.5, 47.8]