sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

python復習まとめ3

リストについて

リストオブジェクトのメソッドを以下に示す。

append(x)

リストの末尾にアイテムを1つ追加する。
a[len(a):] = [x]と等価。

extend(L)

リストの末尾に、与えられたリストLの全アイテムを追加することで、リストを延長する。
a[len(a):] = Lと等価。

insert(i, x)

指定された位置にアイテムを挿入する。第1引数は要素のインデックスで、挿入はこの要素の前に行われる。

remove(x)

値がxである最初のアイテムを削除する。そのようなアイテムが存在しなければエラーとなる。

pop([i])

指定された位置のアイテムをリストから削除し、このアイテムを返す。インデックスが指定されていないと、a.pop()はリストの最後のアイテムを返し、リストから削除する。

index(x)

値がxである最初のアイテムのインデックスを返す。そのようなアイテムが存在しなければエラーとなる。

sort()

リストをソートする。

remove()

リストを逆順にソートする。

リストをスタックとして使う

>>> stack = [1,2,3]
>>> stack.append(4)
>>> stack
[1, 2, 3, 4]
>>> stack.pop()
4
>>> stack
[1, 2, 3]

リストをキュートして使う

>>> queue = [1,2,3]
>>> queue.append(4)
>>> queue
[1, 2, 3, 4]
>>> queue.pop(0)
1
>>> queue
[2, 3, 4]

del文

>>> a = [1,2,3,4,5]
>>> del a[2]
>>> a
[1, 2, 4, 5]
>>> del a[2:]
>>> a
[1, 2]

タプル

複数の要素から構成され、それを一つの値として扱える機能。
リストとの違いは、値の変更が出来るか出来ないという点である。

>>> t = (1,'a',l)
>>> t
(1, 'a', [1, 2, 3])
>>> t = 1,'a',l
>>> t
(1, 'a', [1, 2, 3])
>>> t = ()
>>> t
()
>>> t = 'a',
>>> t
('a',)


集合(set)

集合とは、重複しない要素を順不同で集めたものである。
基本的な要としては存在判定や、重複エントリの排除などがある。
また、和、交差、差などの数学的演算をサポートしている。

>>> basket = {'apple', 'orange', 'grape'}
>>> bascket
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'bascket' is not defined
>>> basket
set(['orange', 'grape', 'apple'])
>>> basket = {'apple','orange','orange','grape','apple'}
>>> basket
set(['orange', 'grape', 'apple'])
>>> 'banana' in basket
False

>>> basket & os  #共通する要素
set(['apple'])
>>> basket | os  #前者または後者に存在する要素
set(['orange', 'windows', 'grape', 'apple'])
>>> basket - os  #前者には存在し、後者に存在しない要素
set(['orange', 'grape']) 
>>> basket ^ os  #前者または後者に存在し、重複を除いた要素
set(['windows', 'orange', 'grape'])

ディクショナリ

シーケンスには連続した数字によるインデックスが付いているのに対し、ディクショナリにはキーによるインデックスが付いている。
キーには文字列や数値などが扱える。
ディクショナリは他の言語では、「連想配列」や「ハッシュ」として存在することがある。

>>> tel = {'taro':1234, 'hanako':5678}
>>> tel
{'hanako': 5678, 'taro': 1234}
>>> tel['taro']
1234
>>> del tel['hanako']  #要素の削除
>>> tel
{'taro': 1234}
>>> tel['ichiro'] = 2345  #要素の追加
>>> tel
{'ichiro': 2345, 'taro': 1234}

>>> list(tel.keys())
['ichiro', 'taro']
>>> sorted(tel.values())
[1234, 2345]
>>> 'jack' in tel
False

#ループのテクニック
>>> tel.items()
[('ichiro', 2345), ('taro', 1234)]

>>> for k ,v in tel.items():
...     print(k, v)
...
('ichiro', 2345)
('taro', 1234)

>>> for i, v in enumerate(tel.values()):
...     print(i, v)
...
(0, 2345)
(1, 1234)
<||

*1347957607*[python][プログラミング]python復習まとめ2
<h2>if文</h2>
>|python|
>>> x = 3
>>> if x < 2:
...     print("a")
... elif x == 2:
...     print("b")
... else:
...     print("c")

for文

>>> a = ['cat', 'dog', 'bird']
>>> for x in a:
...     print(x, len(x))
('cat', 3)
('dog', 3)
('bird', 4)

>>> for i in range(len(a)):
...     print(i, a[i])
...
(0, 'cat')
(1, 'dog')
(2, 'bird')

while文

>>> a, b = 0, 1
>>> while b < 10:
...     print b,
...     a, b = b, a + b
...
1 1 2 3 5 8

その他の制御構文

break文

breakを囲うもっとも小さなforまたはwhileのループを抜ける。
他の言語のbreak文と大差はない。

continue文

continueを囲うループの残りの処理を飛ばして次回の反復へ進む。
他の言語のcontunie文と大差はない。

pass文

pass文は、構文的に文が必要ではあるが、プログラム的には何もする必要がないときに使う。
また、新しくコードを描いている時関数や条件の本体にプレースホルダとして置いておき、抽象的なレベルで考え続けたいときに用いる。

>>> while True:
...     pass

>>> class MyEmptyClass:
...     pass

>>> def initlog():
...     pass   #あとで実装する

関数定義

#引数がない関数
>>> def test():
...     print "test"
...
>>> test()
test

#引数がある関数 初期値を与えることも可能。
>>> def test2(a, b, op=1):
...     if op == 1:
...             print a + b
...     else:
...             print a - b
...
>>> test2(1,2)
3
>>> test2(1,2,2)
-1

#引数がある関数 二つ変数を返すことも可能。
>>> def test3(a,b):
...     return a+1, b+1
...
>>> x, y = test3(1,2)
>>> x
2
>>> y
3