Pythonベース:リスト、メタグループ、辞書


Pythonで最もよく使われるデータコンテナには、リスト、メタグループ、辞書があります.Pythonを使う上で身につけなければならない基礎です.リスト、メタグループ、辞書、および辞書の2つのソート方法(keyソートとvalueソート)について詳しく説明します.
一、リスト
1.作成
list1 = [1,2,3,4,5,6]
list2 = ['a','b','c','d','e']
list3 = [1,'2',[3,"a"],(5,6)]

特別な作成方法:
li = [x for x in range(5)]                    #[0, 1, 2, 3, 4]
li = [(x, x * 2) for x in range(5)]           #[(0, 0), (1, 2), (2, 4), (3, 6), (4, 8)]
li = [x for x in range(5) if (x % 2) == 0]    #[0, 2, 4]

2.アクセス
list1[1]     #2
list3[-1]    #(5,6)

3.スライス
list1[::2]    #[1, 3, 5]
list3[2:-1]   #[[3, 'a']]
list3[2][1]   #'a'

4.修正
list1[0] = 0                #[0, 2, 3, 4, 5, 6]
list2[2] = ["b"]            #['a', 'b', ['b'], 'd', 'e']
list3[0:2] = [1.1,'2.2']    #[1.1, '2.2', [3, 'a'], (5, 6)]

5.削除
list1 = [1,2,3,4,5,6]

del list1[0]            #[2, 3, 4, 5, 6]
del list1[1:2]          #[1, 4, 5, 6]
list1[1:2] = []          #[1, 4, 5, 6]

6.オペレータ('+','*',in,not in)
list1 = [1,2,3,4,5,6]
list2 = ['a','b','c','d','e']

li = list1 + list2    #[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e']

li = list1 * 2        #[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]

5 in list1            #True

8 not in list1        #True

7.関数メソッド
li = [0,1,2,3,3,5]

#    
len(li)                 #6

#     
max(li)                 #5

#     
min(li)                 #0

#       
li.append(6)            #[0, 1, 2, 3, 3, 5, 6]

#       
li.count(3)             #2

#            
li.index(3)             #3 (          )

# index 7       9
li.insert(7,9)          #[0, 1, 2, 3, 3, 5, 9]

#  index     
li.pop(4)               #[0, 1, 2, 3, 5]

#           
li.remove(3)            #[0, 1, 2, 3, 5]

#        
li.reverse()            #[5, 3, 3, 2, 1, 0]

#  
li.sort(reverse=False)  #[0,1,2,3,3,5]

#    
li.clear()
del li[:]
li = []

二、元グループ
1.作成
メタグループの要素は、複数の変数に直接割り当てることができますが、変数の数は要素の数と一致する必要があります.Pythonの関数Functionは複数の値を返すことができ,この場合はメタグループタイプを返す.
a, b, c = (1, 2, 3)
d = ('a', 'b', 'c')

print(a)        #1
print(b)        #2
print(c)        #3
print(d)        ('a', 'b', 'c')

 
2.アクセス
d = ('a', 'b', 'c')

d[1]                    #'a'
d[1:3]                  #('b', 'c')

3.オペレータ
a = (1, 2, 3)
d = ('a', 'b', 'c')

a + d                   #(1, 2, 3, 'a', 'b', 'c')
d * 2                   #('a', 'b', 'c', 'a', 'b', 'c')

4.メタグループは要素を修正、削除できません
三、辞書
1.作成
d = {key1 : value1, key2 : value2 }

特殊な作成方法:
{x: x**2 for x in (2, 4, 6)}    #{2: 4, 4: 16, 6: 36}

2.アクセス
dic = {'a': 1, 'b': [1, 2, 3], 'c':{1:2}}

dic['b'][2]                    #3
dic['a']                       #1
dic['b']                       #[1, 2, 3]
dic['c'][1]                    #2

3.修正
dic = {'a': 1, 'b': [1, 2, 3]}

dic['b'][1] = 0                #{'a': 1, 'b': [1, 0, 3]}

4.削除
dic = {'a': 1, 'b': [1, 2, 3]}

#    
del dic['a']                    #{'b': [1, 2, 3]}

#    
del dic

5.関数メソッド
dic = {'a': 1, 'b': 2, 'c':3}

len(dic)                        #3

str(dic)                        #"{'a': 1, 'b': 2, 'c': 3}"

'a' in dic                      #True

dic.get('a')                    #1

dic.items()                     #dict_items([('a', 1), ('b', 1), ('c', 3)])

dic.keys()                      #dict_keys(['a', 'b', 'c'])

dic.values()                    #dict_values([1, 1, 3])

dic.update({'a':0})             #{'a': 0, 'b': 2, 'c': 3}

dic.pop('b')                    #{'a': 0, 'c': 3}

6.辞書の並べ替え
キーでソート:
dic = {'a': 2, 'c': 3, 'b':1}

sorted(dic.items(), key=lambda d: d[0])    

#  :
[('a', 2), ('b', 1), ('c', 3)]

valueでソート:
dic = {'a': 2, 'c': 3, 'b':1}

sorted(dic.items(), key=lambda d: d[1])

#  :
[('b', 1), ('a', 2), ('c', 3)]

まとめ:
  • リストは無秩序で重複可能なデータ系列であり、要素を随時追加、削除することができる.
  • リストは、四角カッコで作成され、カンマで区切られた要素
  • を使用します.
  • リスト要素の値は、変数
  • を含む任意のタイプであってもよい.
     
  • タプルはリストと類似しており、タプルの要素が
  • を変更できない点が異なる.
  • メタグループは小かっこを使用し、リストは角カッコ
  • を使用する.
  • append()、insert()のように修正する方法はなく、他の方法はリストと同じ
  • である.
     
  • 辞書は、任意のタイプのオブジェクト
  • を格納可能な別の可変コンテナモデルである.
  • 辞書の各キー値(key=>value)対はコロン(:)で分割され、各対の間はカンマ(,)で分割され、辞書全体がカッコに含まれる
  • キーは一意でなければならないが、値は必要ない.値は任意のデータ型
  • であってもよい.
  • 辞書にないキーでデータにアクセスすると、
  • とエラーが発生します.
  • 辞書の要素は順序がなく、下付きで要素を参照することができず、キーで
  • を参照する.
  • 辞書内部に格納順序とkeyが入れる順序は関係のない
  • である.