Python辞書、リスト、メタグループ、配列
4421 ワード
Python辞書、リスト、メタグループ、配列の関数と方法について説明します.
一、辞書
1、内蔵関数
2、組み込み方法
配列を辞書に変換するには、次の手順に従います.
1、現在2つのリストがあり、list 1=[‘key 1’,‘key 2’,‘key 3’]とlist 2=[‘1’,‘2’,‘3’]で、彼らをこのような辞書に変えた:{‘key 1’:‘1’,‘key 2’:‘2’,‘key 3’:‘3’}
2、ネストされたリストを辞書に変換するには、2つの方法があります.
二、リスト
リストの初期化
1.インクリメンタルリストを初期化するには:
2.各項目が0の1次元配列を初期化します.
3.固定値の1次元配列を初期化するには:
4.5 x 6の各項目が0(固定値)の配列を初期化する(推奨):
5.5 x 6各項目が0(固定値)の配列を初期化する
以上の方法を見て、2 D配列を初期化するときに、このようにすることができますか?
実は、
出力の結果は次のとおりです.
私たちはmulti[0][0]を修正したが、私たちのmulti[1][0]、multi[2][0]も修正した.これは私たちが望んでいる結果ではありません.
しかし、次のような書き方は正しいです.
出力結果を見てみましょう.
はい、大丈夫です.ただし、*を用いた方が混同を起こしやすいため、Bugは上記の方法4を推奨する.
三、元グループ
初期化
タプル索引、切り取り
メタグループもシーケンスであるため、メタグループ内の指定された場所の要素にアクセスしたり、インデックス内の要素の一部を切り取ったりすることができます.以下に示します.
メタグループ:
Python式
結果
説明
L[2]
‘SPAM!’
3番目の要素を読み込む
L[-2]
‘Spam’
逆読み込み、最後から2番目の要素の読み込み
L[1:]
(‘Spam’, ‘SPAM!’)
要素の切り取り
組み込み関数
はいれつ
配列の作成
配列を作成する一般的な関数
一、辞書
1、内蔵関数
1、cmp(dict1, dict2)
。
2、len(dict)
, 。
3、str(dict)
。
4、type(variable)
, 。
2、組み込み方法
1、dict.clear()
2、dict.copy()
3、dict.fromkeys(seq[, val])
, seq ,val
4、dict.get(key, default=None)
, default
5、dict.has_key(key)
dict true, false
6、dict.items()
( , )
7、dict.keys()
8、dict.setdefault(key, default=None)
get() , , default
9、dict.update(dict2)
dict2 / dict
10、dict.values()
11、pop(key[,default])
key , 。key 。 , default 。
12、popitem()
配列を辞書に変換するには、次の手順に従います.
1、現在2つのリストがあり、list 1=[‘key 1’,‘key 2’,‘key 3’]とlist 2=[‘1’,‘2’,‘3’]で、彼らをこのような辞書に変えた:{‘key 1’:‘1’,‘key 2’:‘2’,‘key 3’:‘3’}
list1 = ['key1','key2','key3']
list2 = ['1','2','3']
list2 = range(len(list1))
dict(zip(list1,list2))
{'key1':'1','key2':'2','key3':'3'}
2、ネストされたリストを辞書に変換するには、2つの方法があります.
new_list= [['key1','value1'],['key2','value2'],['key3','value3']]
dict(list)
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
二、リスト
リストの初期化
1.インクリメンタルリストを初期化するには:
list1 = range(10)
print(list1)
[0,1,2,...,9]
2.各項目が0の1次元配列を初期化します.
list2 = [0] * 5
print(list2)
[0,0,0,0,0]
3.固定値の1次元配列を初期化するには:
initVal = 1
listLen = 5
list3 = [ initVal for i in range(5)]
print(list3)
[1,1,1,1,1]
list4 = [initVal] * listLen
print(list4)
[1,1,1,1,1]
4.5 x 6の各項目が0(固定値)の配列を初期化する(推奨):
multilist = [[0 for col in range(5)] for row in range(6)]
5.5 x 6各項目が0(固定値)の配列を初期化する
multilist = [[0] * 5 for row in range(3)]
以上の方法を見て、2 D配列を初期化するときに、このようにすることができますか?
multi = [[0] * 5] * 3
実は、
[0] * 5
は1次元配列のオブジェクトなので、* 3
はオブジェクトの参照を3回コピーしただけです.例えば、multi[0][0]:multi = [[0] * 5] * 3
multi[0][0] = 'Hello'
print(multi)
出力の結果は次のとおりです.
[['Hello', 0, 0, 0, 0], ['Hello', 0, 0, 0, 0], ['Hello', 0, 0,0, 0]]
私たちはmulti[0][0]を修正したが、私たちのmulti[1][0]、multi[2][0]も修正した.これは私たちが望んでいる結果ではありません.
しかし、次のような書き方は正しいです.
multilist = [[0] * 5 for row in range(3)]
multilist[0][0] = 'Hello'
print(multilist)
出力結果を見てみましょう.
[['Hello', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
はい、大丈夫です.ただし、*を用いた方が混同を起こしやすいため、Bugは上記の方法4を推奨する.
multilist = [[0 for col in range(5)] for row in range(6)]
三、元グループ
初期化
L = 3, 4, 5
L = (3,4,5)
del(L) //
(1,2) + (3,4) //
タプル索引、切り取り
メタグループもシーケンスであるため、メタグループ内の指定された場所の要素にアクセスしたり、インデックス内の要素の一部を切り取ったりすることができます.以下に示します.
メタグループ:
L = ('spam', 'Spam', 'SPAM!')
Python式
結果
説明
L[2]
‘SPAM!’
3番目の要素を読み込む
L[-2]
‘Spam’
逆読み込み、最後から2番目の要素の読み込み
L[1:]
(‘Spam’, ‘SPAM!’)
要素の切り取り
組み込み関数
cmp(tuple1, tuple2)
。
len(tuple)
。
max(tuple)
。
min(tuple)
。
tuple(seq)
。
はいれつ
配列の作成
import numpy as np
a = np.array([2,3,4])
b = np.array([2.0,3.0,4.0])
c = np.array([[1.0,2.0],[3.0,4.0]])
d = np.array([[1,2],[3,4]],dtype=complex) #
print(a) #
配列を作成する一般的な関数
np.arange(0,7,1,dtype=np.int16) # 0 , 1 ( )
np.ones((2,3,4),dtype=np.int16) # ,2 ,3 ,4 , 1,
np.zeros((2,3,4)) # , 2 ,3 ,4 , 0
np.empty(3) #
np.arange(0,10,2) # 0, 10, 2
np.linspace(-1,2,5) # -1, 2, 5
np.random.randint(0,3,(2,3)) # 0, 3,2 3
b = np.ones((2,3,4),dtype=np.int16)
print(b.shape) # a
print(b.shape[0]) # , 1 ,2
print(b.ravel()) # a(a )
b.shape = (6,2); print(b)# a
print(a.transpose()) # a