Python内蔵データセットと辞書
5833 ワード
コレクションと辞書 1.集合:一山は二虎を許さない 1.1コレクションの作成: 1.2. 集合のプロパティ: は+,*,index,slice(集合が無秩序で重複しないため) をサポートしていません.はinとnot in をサポートする test 1:n個の1-1000の間の数をランダムに生成し、 に並べ替える. 1.3. 集合の共通動作 1.3.1増加 add:単一要素 を追加 update:複数の要素を追加 1.3.2. 削除 remove:要素が存在する場合は削除し、そうでない場合は とエラーが発生します. discard:要素が存在する場合は削除し、そうでない場合はdo nothing pop:ランダム 要素を削除し、集合が空の場合は とエラーが発生します. 1.3.3. 表示 2.frozenset不変の集合 3.辞書dict 3.1. 辞書の作成dict 3.2. 辞書の特性 は+,*,index,slice(集合が無秩序で重複しないため) をサポートしていません.はinとnot in をサポートする 3.3. 辞書の一般的な方法 3.3.1. 表示 3.3.2. 追加および変更 3.3.3. 削除 3.4. 辞書(for) を巡る 4.defaultdict 課後練習
1.集合:一山二虎を許さない
セット(set)は
1.1コレクションの作成:
s={1,2,3,1,2,3}#{1,2,3}print(s,type(s))出力時に直接注意点1:集合の要素が必要な場合は可変データ型ではないことに注意する.s={1,2,3,[1,2,3]}######リストは可変データ型なので、この書き込みエラー
注意点2:
1.2. 集合のプロパティ:
+,*,index,slice(コレクションが無秩序で重複しないため)はサポートされていません.
inとnot inのサポート
print(1 in {1, 2, 3, 4})
test 1:n個の1-1000の間の数をランダムに生成し、並べ替える
1.3. 集合の一般的な操作
1.3.1増加
add:単一要素の追加
update:複数の要素を追加
s = {1, 2, 3} s.add(100) #{1,2,3,100}
s = {1, 2, 3} s.update({4, 5, 6}) #{1,2,3,4,5,6}
1.3.2. 削除
remove:要素が存在する場合、削除します.そうしないと、エラーが発生します.
discard:要素が存在する場合は削除し、そうでない場合はdo nothing
pop:ランダム
要素を削除し、集合が空の場合はエラーを報告します.
s = {1, 2, 3} s.remove(3) print(s) s = {1, 2, 3} s.discard(100) print(s) s = {1, 66, 2,99, 78, 3} s.pop() print(s)
1.3.3. 表示
差:
s1 - s2
交差:
s1 & s2
対称差分:
s1 ^ s2
並列:
s 1={1,2,3}s 2={1,2}
print(s1.issubset(s2)) # False print(s1.isdisjoint(s2)) # False
2.frozenset不変の集合
s = frozenset({1, 2, 3}) print(s, type(s)) #
3.辞書dict
3.1. 辞書の作成dict
3.2. 辞書の特性
+,*,index,slice(コレクションが無秩序で重複しないため)はサポートされていません.
inとnot inのサポート
d={"name":"westos","age":18,"city":"西安"}print(‘name’in d)#True,すべてのkeyがメンバーprint("westos"in d)#Falseに値するかどうかを判断する
3.3. 辞書の常用方法
3.3.1. 表示
すべて表示
keys, values, items
ローカルの表示
d[key], d.get(key), d.get(key, default-value)
d={"name":"westos","age":18,"city":"西安"}
print(d.keys())
#辞書のすべてのkey値を表示
print(d.values())
#辞書のすべてのvalue値を表示
print(d.items())
#辞書のすべてのkey-value値(item要素)を表示
print(d[‘name’])
#キーがnameに対応するvalue値を表示
print(d[‘province’])
#keyに対応するvlaue値を表示します.存在しない場合はエラーが表示されます.
#keyに対応するvlaue値を表示し、存在する場合は
#keyに対応するvlaue値を表示し、存在する場合は戻り、存在しない場合はデフォルト値を返します.
3.3.2. 追加と変更
d={“name”:“westos”,“age”:18}d[‘city’]=“西安”keyが存在しない場合print(d)#{‘name’:‘westos’,‘age’:18,‘city’:‘西安’}d[‘city’]=“北京”keyが存在する場合value値print(d)#{‘name’:‘westos’,‘age’:18,‘city’:‘北京’}を修正する
d={"name":"westos","age":18}d.setdefault(‘city’,‘西安’)#keyが存在しない場合print(d)d.setdefault(‘city’,‘北京’)#keyが存在する場合do nothing print(d)
3.3.3. 削除
d = {“name”:“westos”, “age”:18} d.pop(‘name’) print(d) d = {“name”:“westos”, “age”:18} del d[‘name’] print(d)
3.4. 辞書を巡る(for)
d={“name”:“westos”,“age”:18,“city”:“西安”}デフォルトでは、辞書はkey値のみを巡回します
name age city辞書のkeyとvalueを巡ったら?(特に重要)
key=name,value=westos key=age,value=18 key=city,value=西安
4.defaultdict
defaultdict提供default_factoryプロパティ.存在しないkeyのためにデフォルトのvalueを自動的に生成します.
レッスン後の練習の合計:https://leetcode-cn.com/problems/two-sum/ 重複のない最長男列:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
1.集合:一山二虎を許さない
セット(set)は
です.1,2,3,4,1,2,3 = 1,2,3,4 1.1コレクションの作成:
1). { } set() ;
2). :
set() { }
{ } 。
s={1,2,3,1,2,3}#{1,2,3}print(s,type(s))出力時に直接注意点1:集合の要素が必要な場合は可変データ型ではないことに注意する.s={1,2,3,[1,2,3]}######リストは可変データ型なので、この書き込みエラー
注意点2:
{}, set()
s = set()
1.2. 集合のプロパティ:
+,*,index,slice(コレクションが無秩序で重複しないため)はサポートされていません.
inとnot inのサポート
print(1 in {1, 2, 3, 4})
test 1:n個の1-1000の間の数をランダムに生成し、並べ替える
import random
n = int(input(" n:"))
s=set()
for i in range(n):
s.add(random.randint(1,1000))
print(sorted(s,reverse=True))
1.3. 集合の一般的な操作
1.3.1増加
add:単一要素の追加
update:複数の要素を追加
s = {1, 2, 3} s.add(100) #{1,2,3,100}
s = {1, 2, 3} s.update({4, 5, 6}) #{1,2,3,4,5,6}
1.3.2. 削除
remove:要素が存在する場合、削除します.そうしないと、エラーが発生します.
discard:要素が存在する場合は削除し、そうでない場合はdo nothing
pop:ランダム
要素を削除し、集合が空の場合はエラーを報告します.
s = {1, 2, 3} s.remove(3) print(s) s = {1, 2, 3} s.discard(100) print(s) s = {1, 66, 2,99, 78, 3} s.pop() print(s)
1.3.3. 表示
差:
s1 - s2
交差:
s1 & s2
対称差分:
s1 ^ s2
並列:
s1 | s2
s 1={1,2,3}s 2={1,2}
print(s1 - s2)
#{3}print(s1 & s2)
#{1,2}s 1={1,2,3}s 2={1,2,4}print(s1 ^ s2)
#{3,4},{1, 2, 3, 4} - {1, 2} = {3,4}
並列集合hから交差を減算する,すなわち,集合中の重複しない要素の集合print(s1 | s2)
#{1,2,3,4}print(s1.issubset(s2)) # False print(s1.isdisjoint(s2)) # False
2.frozenset不変の集合
set ( add、remove、discard、xxx_update ),frozenset ;set ,fronzenset 。
s = frozenset({1, 2, 3}) print(s, type(s)) #
3.辞書dict
, 。 , ,
3.1. 辞書の作成dict
key-value
d={“name”:“westos”,“age”:18,“city”:“西安”}print(d,type(d))d = {}
#空辞書3.2. 辞書の特性
+,*,index,slice(コレクションが無秩序で重複しないため)はサポートされていません.
inとnot inのサポート
d={"name":"westos","age":18,"city":"西安"}print(‘name’in d)#True,すべてのkeyがメンバーprint("westos"in d)#Falseに値するかどうかを判断する
3.3. 辞書の常用方法
3.3.1. 表示
すべて表示
keys, values, items
ローカルの表示
d[key], d.get(key), d.get(key, default-value)
d={"name":"westos","age":18,"city":"西安"}
print(d.keys())
#辞書のすべてのkey値を表示
print(d.values())
#辞書のすべてのvalue値を表示
print(d.items())
#辞書のすべてのkey-value値(item要素)を表示
print(d[‘name’])
#キーがnameに対応するvalue値を表示
print(d[‘province’])
#keyに対応するvlaue値を表示します.存在しない場合はエラーが表示されます.
print(d.get('province'))
#keyに対応するvlaue値を表示し、存在する場合は
None.
を返します.print(d.get('province', " "))
#keyに対応するvlaue値を表示し、存在する場合は戻り、存在しない場合はデフォルト値を返します.
3.3.2. 追加と変更
d={“name”:“westos”,“age”:18}d[‘city’]=“西安”keyが存在しない場合print(d)#{‘name’:‘westos’,‘age’:18,‘city’:‘西安’}d[‘city’]=“北京”keyが存在する場合value値print(d)#{‘name’:‘westos’,‘age’:18,‘city’:‘北京’}を修正する
d={"name":"westos","age":18}d.setdefault(‘city’,‘西安’)#keyが存在しない場合print(d)d.setdefault(‘city’,‘北京’)#keyが存在する場合do nothing print(d)
3.3.3. 削除
d = {“name”:“westos”, “age”:18} d.pop(‘name’) print(d) d = {“name”:“westos”, “age”:18} del d[‘name’] print(d)
3.4. 辞書を巡る(for)
d={“name”:“westos”,“age”:18,“city”:“西安”}デフォルトでは、辞書はkey値のみを巡回します
for item in d:
print(item)
name age city辞書のkeyとvalueを巡ったら?(特に重要)
for key,value in d.items(): # [('name', 'westos'), ('age', 18), ('city', ' ')]
print(f"key={key}, value={value}")
key=name,value=westos key=age,value=18 key=city,value=西安
4.defaultdict
defaultdict提供default_factoryプロパティ.存在しないkeyのためにデフォルトのvalueを自動的に生成します.
from collections import defaultdict
# , value
d = defaultdict(int)
d['views'] += 1
d['transfer'] += 1
print(d) #defaultdict(, {'views': 1, 'transfer': 1})
d = defaultdict(list)
d['allow_users'].append('westos')
d['deny_users'].extend(['user1', 'user2'])
print(d) #{'allow_users': ['westos'], 'deny_users': ['user1', 'user2']})
d = defaultdict(set)
d['love_movies'].add(" ")
d['dislike_movies'].update({' 3', ' xxxx'})
print(d) #{'love_movies': {' '}, 'dislike_movies': {' xxxx', ' 3'}})
レッスン後の練習