[python入門および進級ノート]Python-基礎-メタグループ小結

5157 ワード


<!--
h1, h2, h3, h4, h5, h6, p, blockquote
{margin:0;
padding:0}
body
{font-family:"Helvetica Neue",Helvetica,"Hiragino Sans GB",Arial,sans-serif;
font-size:13px;
line-height:18px;
color:#737373;
background-color:white;
margin:10px 13px 10px 13px}
table
{margin:10px 0 15px 0;
border-collapse:collapse}
td, th
{border:1px solid #ddd;
padding:3px 10px}
th
{padding:5px 10px}
a
{color:#0069d6}
a:hover
{color:#0050a3;
text-decoration:none}
a img
{border:none}
p
{margin-bottom:9px}
h1, h2, h3, h4, h5, h6
{color:#404040;
line-height:36px}
h1
{margin-bottom:18px;
font-size:30px}
h2
{font-size:24px}
h3
{font-size:18px}
h4
{font-size:16px}
h5
{font-size:14px}
h6
{font-size:13px}
hr
{margin:0 0 19px;
border:0;
border-bottom:1px solid #ccc}
blockquote
{padding:13px 13px 21px 15px;
margin-bottom:18px;
font-family:georgia,serif;
font-style:italic}
blockquote:before
{content:"\201C";
font-size:40px;
margin-left:-10px;
font-family:georgia,serif;
color:#eee}
blockquote p
{font-size:14px;
font-weight:300;
line-height:18px;
margin-bottom:0;
font-style:italic}
code, pre
{font-family:Monaco,Andale Mono,Courier New,monospace}
pre
{display:block;
padding:14px;
margin:0 0 18px;
line-height:16px;
font-size:11px;
border:1px solid #d9d9d9;
white-space:pre-wrap;
word-wrap:break-word}
pre code
{background-color:#fff;
color:#737373;
font-size:11px;
padding:0}
-->
ブログ移行:新しいアドレス  (直通クリック)新ブログmarkdownメンテナンスを使用し、オフラインにバージョンライブラリがあり、自分で書いたのでタイミングよく同期を更新し、同時により良いナビゲーションと読書体験csdnを提供することはmarkdownのサポートによくないので、旧版は同じステップで改訂することはありません.申し訳ありません.
------------------------
メタグループ
概要
tuple
1.タプルは括弧「()」で囲まれたデータセットであり、異なるメンバーは「,」で区切られている.下付き文字でアクセス
2.可変シーケンスは、可変リストと見なすことができ、リストとは異なる:メタグループにおけるデータが確立されると変更できない(したがって、リストのような削除変更操作はなく、基本シーケンス操作のみ)
3.任意のタイプ、任意のネスト、および一般的なシーケンス操作をサポート
4.タプルは、通常、文またはユーザ定義関数が安全に値のセットを使用できるようにするときに使用されます.すなわち、使用されるタプルの値は変更されません.
宣言および使用
t = ()  #   
t =(1,)  #      ,      
t =(1,2,3)


1 in t #  
2 not in t

#         :  ,  
print t[0]
print t[-1]
print t[:2]

#           
print t+(4,5)  #     (1,2,3,4,5)
print t * 2    #(1,2,3,1,2,3)
t.index(1)
t.count(1)

#      
l = [1,2,3]
lt = tuple(l)
tl = list(lt)
lt_sorted = sorted(l)  #       ,     

#      (        )
print tuple('hello)   #('h','e','l','l','o')

tupleにappend/extend/remove/popなどの追加削除操作はありませんtupleにはfindはありません
ヘルプの表示
help(tuple) 

用途
1.賦課
t = 1,2,3   #   t = (1, 2, 3)
x, y, z = t   #    ,                 

2.関数の複数の戻り値
def test():
    return (1,2)

x, y = test()

3.パラメータ[元のシーケンスを変更しないように強制]
def print_list(l):
    t = tuple(l)   #  t = l[:]
    dosomething()

4.文字列のフォーマット
print '%s is %s years old' % ('tom', 20)

5.辞書としてのkey
メリット
1.性能
tupleはリストより操作速度が速い
定数セットを定義するか、読み取り専用シーケンスを定義する必要がある場合は、リストの代わりにtupleを使用します.
>>> a = tuple(range(1000))
>>> b = range(1000)
>>> def test_t():
...     for i in a:
...             pass
...
>>> def test_l():
...     for i in b:
...             pass
...
>>> from timeit import Timer
>>> at = Timer("test_t()", "from __main__ import test_t")
>>> bt = Timer("test_l()", "from __main__ import test_l")

単純テスト
>>> at.repeat(3, 100000)
[1.526214838027954, 1.5191287994384766, 1.5181210041046143]

>>> bt.repeat(3, 100000)
[1.5545141696929932, 1.557785987854004, 1.5511009693145752]

2.不変性
不要なデータを書き込み保護することで、コードをより安全に
可変性はありません.プログラム内でオブジェクトのセットをリスト形式で渡すと、どこでも変更される可能性があります.メタグループを使用すると、
不変性は、コンテンツではなくメタグループ自体の最上位レベルにのみ適用されます.たとえば、メタグループ内部のリストは変更できます.
l = [1,2,3]
t = (1,2,l)
l.append(4)

不変性はある種の完全性を提供し、規範化し、修正されないことを確保し、ある一定の関係を維持する.
修正方法
tuple -> list -> tuple

The end!
To be continue
wklken
Email: [email protected]
Blog: http://blog.csdn.net/wklken
2013-03-09
転載は出典を明記してください、ありがとうございます