便利な使い方も忘れないように残しておきます、
1) リストは [ ] (角括弧)を使用します。任意の数の要素を代入でき、作成後、要素の追加や削除ができます。
2) タプルは ( ) (括弧)を使用します。任意の数の要素を代入できますが作成後、要素の追加や削除ができません。
3) ディクショナリは { } (波括弧)を使用します。任意の数の要素を代入でき、作成後、要素の追加や削除ができます。keyとvalueの2つで1つの要素という考え方で、1つのディクショナリの中で同じkeyを使用することができません。
4) セットは { } (波括弧)を使用します。任意の数の要素を代入でき、作成後、要素の追加や削除ができます。1つのセットの中で重複した要素を使用することができません。
具体例です。
Python Object -- Excelで管理する典型的表形式に対応する
1)リスト
定義:
name =["Justin", "Charlie", "Ed"]
◆追加
name.append("Selena")
◆挿入
name.insert(2, "Bob")
>>> name = ['Justine', 'Ed', 'Serena']
>>> name.insert(2, 'Bob')
>>> name
['Justine', 'Ed', 'Bob', 'Serena']
*While文を使った例
fruits =['apple','orange','pineapple', 'banana', 'orange']
while fruits.count('orange'):
*Listのcount methodは、引数に指定した値と同じ要素があれば、
その数だけ繰り返す。
fruits.remove('orange')
output: fruits =['apple','pineapple', 'banana']
*内包表記
number = []
for x in range(10):
number.append(x)
print(number)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> number =[ x for x in range(10)]
>>> print(number)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3) ディクショナリ
**Python3 では、dictionaryの順番は保持されます。
*************************************************
people_string={
"people":[
{"name":"Wayne Rigsby",
"phone":"123-456-789",
"emails":["wayne@cbi.com", "wayne2@cbi.com"],
"has_license":"true"},
{"name":"Patric Jane",
"phone":"987-654-321",
"emails":"null",
"has_license":"false"}
]
}
for person in people_string[ "people"]:
print(person)
{'name': 'Wayne Rigsby', 'phone': '123-456-789', 'emails': ['wayne@cbi.com', 'wayne2@cbi.com'], 'has_license': 'true'}
{'name': 'Patric Jane', 'phone': '987-654-321', 'emails': 'null', 'has_license': 'false'}
for person in people_string[ "people"]:
print(person.keys())
dict_keys(['name', 'phone', 'emails', 'has_license'])
dict_keys(['name', 'phone', 'emails', 'has_license'])
for person in people_string[ "people"]:
print(person.values())
dict_values(['Wayne Rigsby', '123-456-789', ['wayne@cbi.com', 'wayne2@cbi.com'], 'true'])
dict_values(['Patric Jane', '987-654-321', 'null', 'false'])
for person in people_string[ "people"]:
print(person["name"])
Wayne Rigsby
Patric Jane
*************************************************
a={'name':'Freddie', 'song':'Rock you', 'year': '1977'}
要素へのアクセス
*valueには直接アクセスできないので、'key' を使ってアクセス。
print(a['name']) #Freddie
print(a['song']) #Rock you
print(a['year']) #1977
(Output)
print(a) #{'name': 'Freddie', 'song': 'Rock you', 'year': '1977'}
print(a.keys()) #dict_keys(['name', 'song', 'year'])
print(a.values()) #dict_values(['Freddie', 'Rock you', '1977'])
print(a.items()) #dict_items([('name', 'Freddie'), ('song', 'Rock you'), ('year', '1977')])
/// keyの一覧をプリントアウト
print('-------1')
for k in a.keys():
print(k)
-------1
name
song
year
/// keyに対応するValueをプリントアウト
print('-------2')
for k in a.keys():
print(a[k])
-------2
Freddie
Rock you
1977
print('-------3')
for v in a.values():
print(v)
-------3
Freddie
Rock you
1977
print('-------4')
for k, v in a.items():
print(k, v)
-------4
name Freddie
song Rock you
year 1977
要素の追加
a['country']="U.K"
Output)
{'name': 'Freddie', 'song': 'Rock you', 'year': '1977', 'country': 'U.K'}
Keyを指定して要素の削除
*多元 Dictionary (辞書の要素にリスト)
a={'name': 'Freddie', 'song': 'Rock you', 'year': ['1977','1987','1997']}
(一気に個別の変数に代入)
a1, a2, a3 =a["year"]
print(a1,a2,a3) #output 1977 1987 1997
b=a["year"]
print(b) #['1977', '1987', '1997']
*多元 リスト (リストの中に辞書)
a = [{'techacademy': 10}, {'online': 20}, {'programming': 30}]
print(a) # Output : [{'techacademy': 10}, {'online': 20}, {'programming': 30}]
print(a.keys()) # Output : print(a.keys())
AttributeError: 'list' object has no attribute 'keys'
*リストの中に辞書が入ってしまうとkey functionではキーが抽出できない。
*多元 Dictionary (辞書の中に辞書)
a = { 'name' : {'First' : 'Charlie' , 'Last' : 'Puth'}, 'age' :24}
要素へのアクセス
>>> a['name']['Last']
'Puth'
要素のValueの変更
>>> a['name']['Last'] = 'Sheen'
>>> print(a)
{'name': {'First': 'Charlie', 'Last': 'Sheen'}, 'age': 24}
要素の追加
>>> a['name']['middle'] = 'Jake'
>>> a
{'name': {'First': 'Charlie', 'Last': 'Shean', 'middle': 'Jake'}, 'age': 24}
要素の削除
>>> del a['name']['middle']
>>> a
{'name': {'First': 'Charlie', 'Last': 'Shean'}, 'age': 24}
追加 (辞書同士の連結(結合))
>>> a ={'1':{'name': {'First': 'Charlie', 'Last': 'Puth'}, 'age': 24}}
>>> b ={'2':{'name': {'First': 'Ed', 'Last': 'Sheeran'}, 'age': 32}}
>>> a
{'1': {'name': {'First': 'Charlie', 'Last': 'Puth'}, 'age': 24}}
>>> b
{'2': {'name': {'First': 'Ed', 'Last': 'Sheeran'}, 'age': 32}}
>>> a.update(b)
>>> a
{'1': {'name': {'First': 'Charlie', 'Last': 'Puth'}, 'age': 24}, '2': {'name': {
'First': 'Ed', 'Last': 'Sheeran'}, 'age': 32}}
>>> a['2']['name']['Last']
'Sheeran'
>>> a['2']['age']
32
(dictionary型はappendは出来ない)
>>> a.append( { 'name' : {'First' : 'Ed' , 'Last' : 'Sheeran'}, 'age':32})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'append'
*内包表記
>>> map = { x : x**2 for x in (2,4,6)} ♯(2,4,6)は、キーとなるタプル
>>> print(map)
{2: 4, 4: 16, 6: 36}
*インデックス番号と要素を取り出す
enumerate 関数の引数を入力する辞書に items メソッドを組み合わせると、インデックス番号と値を取り出します。
>>> dict = {"tip":"orange","quiz":"orange is ?", "option":"orange1?", "answer":"orange"}
>>> for index, value in enumerate (dict.items()):
... print(f"{index}:{value}")
...
0:('tip', 'orange')
1:('quiz', 'orange is ?')
2:('option', 'orange1?')
3:('answer', 'orange')
*List形式のデータのインデックス番号を取得する場合は、.items()は不要。
for index, value in enumerate(data):
print(f"{index}:{value}")
*後からDictionaryにリスト型で要素を追加
new_dict={}
new_dict["first_name"]=[]
new_dict["last_name"]=[]
new_dict["first_name"].append('Barak')
new_dict["first_name"].append('Michelle')
new_dict["last_name"].append('Obama')
print(new_dict) #Output:{'first_name': ['Barak', 'Michelle'], 'last_name': ['Obama']}
print(new_dict["first_name"]) #Output:['Barak', 'Michelle']
print(new_dict["last_name"]) #Output:['Barak', 'Michelle']
0 件のコメント:
コメントを投稿