単一要素を含む1元基
作成された要素は、間違ってあり、その中タプルとしてPythonの引数の型の一部の機能、:
[Pythonの] プレーンテキストビューは、 コードをコピー
1
|
c = ( 5 ) # NO!
|
それは実際にあなたが要素の後にコンマを追加する必要があり、化粧素子5を作成します。
!
[Pythonの] プレーンテキストビューは、 コードをコピー
1
|
c = ( 5 ,) # YES!
|
2デフォルトパラメータがnullに設定されています
容器の種類とは、nullに設定されている場合、関数の引数のデフォルト値が含まれています:
[Pythonの] プレーンテキストビューは、 コードをコピー
01
02
03
04
05
06
07
08
09
10
|
def f(a,b = []): # NO!
print (b)
return b
ret = f( 1 )
ret.append( 1 )
ret.append( 2 )
# 当再调用f(1)时,预计打印为 []
f( 1 )
# 但是却为 [1,2]
|
これは、変数の型のピットデフォルトパラメータでは、そのようなデフォルトのパラメータを設定してくださいNoneです。
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
|
def f(a,b = None ): # YES!
pass
|
3つの共有変数結合していないピット
時には、グローバル変数を共有するために複数の関数をしたいが、関数内のローカル変数を変更しようとしています。
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
3
4
5
6
|
i = 1
def f():
i + = 1 #NO!
def g():
print (i)
|
これは、グローバル変数としてI F関数の宣言に表示されます。
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
3
4
|
i = 1
def f():
global i # YES!
i + = 1
|
速いピットのリストの4コピー
* Pythonと迅速な複製要素を達成するためのアクションのリストに:
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
|
a = [ 1 , 3 , 5 ] * 3 # [1,3,5,1,3,5,1,3,5]
a[ 0 ] = 10 # [10, 2, 3, 1, 2, 3, 1, 2, 3]
|
このようなリストや辞書複合型としてリスト要素の場合:
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
3
|
a = [[ 1 , 3 , 5 ],[ 2 , 4 ]] * 3 # [[1, 3, 5], [2, 4], [1, 3, 5], [2, 4], [1, 3, 5], [2, 4]]
a[ 0 ][ 0 ] = 10 #
|
結果はあなたを驚かせることができる、他の[1 [0] 10は、また、修飾され
[Pythonの] プレーンテキストビューは、 コードをコピー
1
|
[[ 10 , 3 , 5 ], [ 2 , 4 ], [ 10 , 3 , 5 ], [ 2 , 4 ], [ 10 , 3 , 5 ], [ 2 , 4 ]]
|
化合物が、コピーされたオブジェクトに淡い参照、すなわちID([0])及びID([2])は、同じ家の番号であるため*です。あなたは深いコピーの効果を実現したい場合は、以下の操作を行います。
[Pythonの] プレーンテキストビューは、 コードをコピー
1
|
a = [[] for _ in range ( 3 )]
|
削除されたピットの5リスト
リストで削除要素は、この要素は、リスト内の複数回繰り返してもよいです。
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
3
4
5
|
def del_item(lst,e):
return [lst.remove(i) for i in e if i = = e] # NO!
考虑删除这个序列[ 1 , 3 , 3 , 3 , 5 ]中的元素 3 ,结果发现只删除其中两个:
del_item([ 1 , 3 , 3 , 3 , 5 ], 3 ) # 结果:[1,3,5]
|
正しいアプローチ:
[Pythonの] プレーンテキストビューは、 コードをコピー
1
2
3
|
def del_item(lst,e):
d = dict ( zip ( range ( len (lst)),lst)) # YES! 构造字典
return [v for k,v in d.items() if v! = e]
|
これらは、5つの共通ピットであるこれらのピットを避けることができ、ここで友人を見ることを望んで。