以下は、リスト、タプル、および文字列に焦点を当てています。
list1=['hello','world']
print list1
list2=[1,2,3]
print list2
出力:
[' hello', 'world']
[1, 2, 3]
ご覧のとおり、ここでの作成方法はjavascriptの配列と非常によく似ています。
list関数を使用して文字列のリストを作成することは非常に効果的です(実際、listは関数ではなく型です)。
list3=list("hello")
print list3
出力:
[' h', 'e', 'l', 'l', 'o']
t1=1,2,3
t2="jeffreyzhao","cnblogs"
t3=(1,2,3,4)
t4=()
t5=(1,)
print t1,t2,t3,t4,t5
出力:
(1, 2, 3) (' jeffreyzhao', 'cnblogs') (1, 2, 3, 4) () (1,)
上記の分析から、次のことがわかります。
a。コマ分離いくつかの値、タプルは自動的に作成されます。
b。ほとんどの場合、タプルは括弧で囲まれています。
c。空のタプルは、コンテンツなしで括弧で表すことができます。
d。値を1つだけ含むタプルは、コンマ(、)を追加する必要があります。
タプル関数は、シーケンスのリスト関数とほぼ同じです。つまり、シーケンス(シーケンスに注意)をパラメーターとして受け取り、それをタプルに変換します。
パラメータがタプルの場合、パラメータはそのまま返されます。
t1=tuple([1,2,3])
t2=tuple("jeff")
t3=tuple((1,2,3))
print t1
print t2
print t3
t4=tuple(123)
print t4
出力:
(1, 2, 3)
(' j', 'e', 'f', 'f')
(1, 2, 3)
Traceback (most recent call last):
File "F:\Python\test.py", line 7, in
t4=tuple(123)
TypeError: 'int' object is not iterable
str1='Hello world'
print str1
print str1[0]for c in str1:
print c
出力:
Hello world
H
H
e
l
l
o
w
o
r
l
d
str1='Hello,%s'%'world.'
print str1
strs=('Hello','world') #タプル
str1='%s,%s'% strs
print str1
d={'h':'Hello','w':'World'} #辞書
str1='%(h)s,%(w)s'% d
print str1
出力:
Hello,world
Hello,World
str1='%s,%s'%'Hello','world'
print str1
出力:
Traceback (most recent call last):
File "F:\Python\test.py", line 2, in
str1='%s,%s'%'Hello','world'
TypeError: not enough arguments for format string
str1='%s%%'%100
print str1
出力:100%
from math import pi
str1='%.2f'% pi #精度2
print str1
str1='%10f'% pi #フィールド幅10
print str1
str1='%10.2f'% pi #フィールド幅10、精度2
print str1
出力:
3.14
3.141593
3.14
文字列のフォーマットには、他にも多くの豊富な変換タイプが含まれています。公式ドキュメントを参照してください。
以下に示すように、多くのUNIXシェルの変数置換と同様に機能します。
from string import Template
str1=Template('$x,$y!')
str1=str1.substitute(x='Hello',y='world')
print str1
出力:
Hello,world!
from string import Template
str1=Template('Hello,w${x}d!')
str1=str1.substitute(x='orl')
print str1
出力:
Hello,world!
from string import Template
str1=Template('$x$$')
str1=str1.substitute(x='100')
print str1
出力:100 $
from string import Template
d={'h':'Hello','w':'world'}
str1=Template('$h,$w!')
str1=str1.substitute(d)
print str1
出力:
Hello,world!
書式設定に加えて、Python文字列には多くの実用的なメソッドが組み込まれています。ここには記載されていない公式ドキュメントを参照できます。
リスト、タプル、および文字列から、シーケンスのいくつかの一般的な一般的な方法を「抽象化」できます(あなたが思うようにCRUDではありません)。
これらの操作には、インデックス作成、スライス、追加、乗算、および要素がシーケンスのメンバーであるかどうかの確認が含まれます。
さらに、シーケンスの長さ、最大要素と最小要素などを計算するための組み込み関数があります。
str1='Hello'
nums=[1,2,3,4]
t1=(123,234,345)
print str1[0]
print nums[1]
print t1[2]
出力
H
2
345
魔法は、インデックスが最後の位置(右から左)から開始でき、数値が-1であるということです。
str1='Hello'
nums=[1,2,3,4]
t1=(123,234,345)
print str1[-1]
print nums[-2]
print t1[-3]
出力:
o
3
123
フラグメンテーション操作は、特定の範囲内の要素にアクセスするために使用されます。断片化は、コロンで区切られた2つのインデックスによって実現されます。
nums=range(10)
print nums
print nums[1:5]
print nums[6:10]
print nums[1:]
print nums[-3:-1]
print nums[-3:] #シーケンスの最後に要素を含め、最後のインデックスを空白にします
print nums[:] #シーケンス全体をコピーする
出力:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4]
[6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[7, 8]
[7, 8, 9]
nums=range(10)
print nums
print nums[0:10] #デフォルトのステップサイズは、numsに相当する1です。[1:5:1]
print nums[0:10:2] #ステップサイズは2です
print nums[0:10:3] #ステップサイズは3です
## print nums[0:10:0] #ステップサイズは0です
print nums[0:10:-2] #ステップサイズは-2
出力:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8]
[0, 3, 6, 9]
[]
str1='Hello'
str2=' world'
print str1+str2
num1=[1,2,3]
num2=[2,3,4]
print num1+num2
print str1+num1
出力:
Hello world
[1, 2, 3, 2, 3, 4]
Traceback (most recent call last):
File "F:\Python\test.py", line 7, in
print str1+num1
TypeError: cannot concatenate 'str' and 'list' objects
print [None]*10
str1='Hello'
print str1*2
num1=[1,2]
print num1*2
print str1*num1
出力:
[ None, None, None, None, None, None, None, None, None, None]
HelloHello
[1, 2, 1, 2]
Traceback (most recent call last):
File "F:\Python\test.py", line 5, in
print str1*num1
TypeError: can't multiply sequence by non-int of type 'list'
str1='Hello'
print 'h'in str1
print 'H'in str1
num1=[1,2]
print 1in num1
出力:
False
True
True
str1='Hello'
print len(str1)
print max(str1)
print min(str1)
num1=[1,2,1,4,123]
print len(num1)
print max(num1)
print min(num1)
出力:
5
o
H
5
123
1
簡単に言うと、辞書は中括弧で囲まれたキーと値のペアのコレクションです。 (キーと値のペアはアイテムとも呼ばれます)
adict ={}
adict ={key1:value2, key2:value2, …}
または、dict()関数を使用します。たとえば、adict = dict()またはadict = dict((['x'、1]、['y'、2]))それは正しいですか?
adict = dict(['x'、1]、['y'、2])。次のようなキーワードパラメータを使用して辞書を作成します。adict= dict(name = 'allen'、age = '40')
または、fromkeys()メソッドを使用します(例:adict = {} .fromkeys(( 'x'、 'y')、-1)この方法で作成された辞書の値は同じです。値を指定しない場合、デフォルトはNoneです。
キーと値はコロン「:」で区切られます。
アイテムとアイテムはコンマ "、"で区切られます。
辞書のキーは一意である必要があり、値は一意である必要はありません。
adict [key]の形式は、キーキーに対応する値を返します。キーが辞書にない場合、KeyErrorが発生します。
キーが辞書にあるかどうかを確認するにはどうすればよいですか? has_key()メソッドの形式は次のとおりです。adict.haskey( 'name')with –> True、without –> False
inとnotinの形式: 'name' in adict with –> True、without –> False
辞書を更新する方法は?
adict [new_key] =アイテムを追加するための値フォーム
adict[old_key] = new_value
del adict [key]キーアイテムの削除/ deladict辞書全体の削除
adict.pop(key)キー項目を削除し、キーに対応する値を返します
a。辞書はスプライシングおよび繰り返し演算子(+、*)をサポートしていません
b。辞書比較操作
まず、辞書の要素数である辞書の長さを比較します
主な比較
値の比較
例:
adict ={}
bdict ={'name':'allen','age':'40′}cmp(adict, bdict) #未満 ->-1はより大きい–>1は–に等しい>0
len()は辞書の長さを返します
hash()は、オブジェクトのハッシュ値を返します。これは、オブジェクトを辞書キーとして使用できるかどうかを判断するために使用できます。
dict()ファクトリ関数。辞書の作成に使用されます
adict.keys()は、辞書のすべてのキーを含むリストを返します。
adict.values()は、辞書のすべての値を含むリストを返します。
adict.items()は、すべての(キー、値)プリミティブを含むリストを返します。
adict.clear()は、辞書内のすべてのアイテムまたは要素を削除します。
adict.copy()は、辞書の浅いコピーのコピーを返します。
adict.fromkeys(seq、val = None)は、seqの要素を辞書のキーとして使用し、valを辞書のすべてのキーに対応する初期値として使用して、新しい辞書を作成して返します(デフォルトはNone)。
adict.get(key、default = None)は、辞書内のキーに対応する値を返します。キーが辞書に存在しない場合は、defaultの値を返します(デフォルトはデフォルトでNoneです)。
adict.has_key(key)キーが辞書にある場合は、Trueを返し、そうでない場合はFalseを返します。で使用し、では使用しないでください。
adict.iteritems()、adict.iterkeys()、adict.itervalues()は、対応する非反復メソッドと同じですが、違いは、リストではなく反復子を返すことです。
adict.pop(key [、default])はgetメソッドに似ています。キーが辞書に存在する場合は、そのキーに対応する値を削除して返します。キーが存在せず、デフォルト値が指定されていない場合、キーエラー例外が発生します。
adict.setdefault(key、default = None)はset()メソッドに似ていますが、辞書にKeyキーがない場合、adict [key] = defaultが割り当てられます。
adict.update(bdict)辞書bdictのキーと値のペアを辞書adictに追加します。
1、 辞書のキーをトラバースします
for key in adict.keys():print key
2、 辞書の値をトラバースする
for value in adict.values(): print value
3、 辞書の項目(要素)をトラバースします
for item in adict.items():print item
4、 辞書のキー値をトラバースします
for item,value in adict.items(): print 'key=%s, value=%s'%(item, value)for item,value in adict.iteritems(): print ‘'key=%s, value=%s'%(item, value)
注:adict.items()のitem、valueの場合:print'key =%s '、' value =%s '、%(item、value)この書き方は間違っています
1、 1つのキーを複数の値に対応させることはできません。
2、 キーはハッシュ可能である必要があります。
セットはPython2.3で導入され、通常、以下に示すように、新しいバージョンのPythonを使用して直接作成できます。
strs=set(['jeff','wong','cnblogs'])
nums=set(range(10))
コレクションは主にメンバーシップの確認に使用されるため、コピーは無視されます。次の例に示すように、出力されるコレクションの内容は同じです。
set1=set([0,1,2,3,0,1,2,3,4,5])
print set1
set2=set([0,1,2,3,4,5])
print set2
出力は次のとおりです。
set([0, 1, 2, 3, 4, 5])
set([0, 1, 2, 3, 4, 5])
これは辞書と非常によく似ており、セットは値のない辞書として簡単に理解できます。
strs=set(['jeff','wong','cnblogs'])
print strs
出力は次のとおりです。
set(['wong', 'cnblogs', 'jeff'])
a。交差点ユニオン
set1=set([1,2,3])
set2=set([2,3,4])
set3=set1.union(set2)
print set1
print set2
print set3
出力:
set([1, 2, 3])
set([2, 3, 4])
set([1, 2, 3, 4])
ユニオン操作は、元のセットを変更せずに2つのセットのユニオンを返します。同じ結果を得るには、ビット単位のAND(OR)演算子 "|"を使用します。
set1=set([1,2,3])
set2=set([2,3,4])
set3=set1|set2
print set1
print set2
print set3
出力は、上記のユニオン操作とまったく同じです。
set1=set([1,2,3])
set2=set([2,3,4])
set3=set1&set2
print set1
print set2
print set3
print set3.issubset(set1)
set4=set1.copy()
print set4
print set4 is set1
出力は次のとおりです。
set([1, 2, 3])
set([2, 3, 4])
set([2, 3])
True
set([1, 2, 3])
False
set1=set([1])
print set1
set1.add(2)
print set1
set1.remove(2)
print set1
print set1
print 29in set1
set1.remove(29) #存在しないアイテムを削除します
出力:
set([1])
set([1, 2])
set([1])
set([1])
False
Traceback (most recent call last):
File "F:\Python\test.py", line 9, in
set1.remove(29) #存在しないアイテムを削除します
KeyError: 29
セットは変更可能であるため、辞書キーとして使用することはできません。コレクション自体には不変の値のみを含めることができるため、他のコレクションを含めることはできません。
set1=set([1])
set2=set([2])
set1.add(set2)
出力は次のとおりです。
Traceback (most recent call last):
File "F:\Python\test.py", line 3, in
set1.add(set2)
TypeError: unhashable type: 'set'
set1=set([1])
set2=set([2])
set1.add(frozenset(set2))
print set1
出力:
set([1, frozenset([2])])
Recommended Posts