関連する無料学習の推奨事項: Python チュートリアル (ビデオ) )
文字列
文字列の落とし穴:
三重引用符で囲まれた文字列の途中に二重引用符で囲まれた文字列がない場合、その文字列が出力されます。インタープリタでは二重引用符として出力されます 引用符
三重引用符文字列の途中に二重引用符文字列がある場合、インタープリタでは一重引用符として出力されます。 #文字列は
文字としてメモリに保存されます。文字列操作:
入力: input()
出力: print()
インデックス: str[index]
アドレスの取得: id(str )
スライス: str[開始: 終了: ステップ] (負のステップ サイズ -- 逆の順序で選択します。選択の方向は一貫している必要があります) 、そうでない場合、データは選択できません)
Find: find(): 構文: str.find(substr, start, end) 注: 戻り値は、最初に出現したインデックス値です。部分文字列が存在する場合、戻り値は最初に出現したインデックス値です。存在しない場合は、-1 が返され、エラーは報告されません。
例: mystr = 'hello world と itcast と itheima と Python' print(mystr.find('and'))
# 12print(mystr.find('and',15,30)) # 23 print(mystr.find('ands')) # -1 ands 部分文字列が存在しません Index(): 構文: str.index(substr, start, end) 戻り値は最初に表示されるインデックス値であり、部分文字列が存在しない場合はエラーが報告されます。例: mystr = 'hello world、itcast、itheima、Python'print(mystr.index('and'))
# 12print(mystr .index('and',15,30)) # 23print(mystr.index('ands')) #インデックス検索の部分文字列が存在しない場合、エラーが報告されます count() : 部分文字列の出現回数をカウントします。構文: str.index(substr, Tart, end) 注: 戻り値は、部分文字列が出現した回数です。部分文字列が存在しない場合は、0 が返され、エラーは報告されません。例: mystr = 'hello worldそして itcast と itheima と Python' print(mystr.count('and',15,30)) # 1 print(mystr.count('and')) # 3print (mystr .count('ands')) # 0 rfind(): 関数は find() と同じですが、検索方向は右から始まります rindex(): 関数は同じですIndex() ですが、検索アクセスは右側から開始されます。
Modify:replace(): 置換構文: str.replace(old substring, new substring,注: 置換数を記述しない場合、デフォルトの「すべての古い部分文字列が置換されます。置換数が部分文字列の出現数を超える場合、置換数は部分文字列の出現数になります。」部分文字列。 replace 関数を呼び出した後、元の文字列のデータが変更されていないことがわかりました。変更されたデータは replace 関数の戻り値です。説明: String は不変のデータ型です。例: mystr = 'hello worldそして itcast と itheima と Python ' new_str = mystr.replace('and','he') new_str = mystr.replace('and','he',1) new_str = mystr.replace('and','he' ,10) split() : 分割構文: str.split (分割文字, num) 注: 戻り値はリストであり、欠落している分割文字 num は分割文字の出現数、つまりデータの数を表します。将来返される値は num 1 です。
たとえば、mystr = 'hello world、itcast、itheima、Python' list1 = mystr.split('and') list1 = mystr.split('and',2) join():
マージ構文: 文字または部分文字列 join (複数の文字のシーケンス) 注: 部分文字列または部分文字列を使用して文字列をマージするとは、複数の文字列を新しい文字列にマージすることを意味します。例: mylist = [' aa','bb' ,'cc'] new_str = '...'.join(mylist) print(new_str)
大文字小文字変換capitalize(): 文字列の最初の文字を大文字に変換します 構文: str.capitalize( )注: Capitalize() 関数が変換されると、文字列の最初の文字のみが大文字になり、他の文字はすべて小文字になります。
例: mystr = 'hello world and itcast と itheima と Python' new_str = mystr.capitalize( ) print(new_str) title(): 文字列内の各単語の最初の文字を大文字に変換します 構文: str.title()
例: mystr = 'hello world と itcast と itheima と Python' new_str = mystr .title() print(new_str) lower(): 文字列を大文字から小文字に変換します 構文: str. lower() 注: すべてを小文字に変換します
例: mystr = 'hello world、itcast、itheima、Python'new_str = mystr. lower() print(new_str) upper(): 文字列を小文字から大文字に変換します 構文: str.upper() 注: すべてを変換します
例: mystr = 'hello world と itcast と itheima と Python' new_str = mystr.upper() print(new_str)
先頭と末尾のスペースを削除します lstrip():文字列の左側にある空白文字を削除します。 構文: str.lstrip() 例: mystr = ' hello world と itcast と itheima と Python ' new_str = mystr.lstrip() print(new_str) rstrip():文字列の右側の空白文字 構文: str.rstrip()
例: mystr = ' hello world と itcast と itheima と Python ' new_str = mystr.rstrip() print(new_str) ストリップ(): 文字列の両側の空白文字を削除します 構文: str.strip()
例: mystr = ' hello world と itcast と itheima と Python ' new_str = mystr.strip() print(new_str)
文字列の配置 ljust(): 元の文字列を左揃えで返します指定された文字 (デフォルトのスペース) を使用して、新しい文字列を対応する長さまで埋めます。 構文: str.ljust (長さ、埋め込み文字) 例: mystr = "hello" print(mystr.ljust(10,'.'))効果は次のとおりです: ' hello....' rjust(): 右揃えで、指定された文字 (デフォルトのスペース) を対応する長さまで埋め込んだ新しい文字列を返します。構文: str.rjust(length, paddingcharacters)
例: mystr = "hello" print(mystr.rjust(10,'.')) 効果は次のとおりです: '...hello' center(): 元の文字列を中央に揃えて返します。指定された文字 (デフォルトのスペース) は、新しい文字列構文の対応する長さに埋め込まれます: str.center (長さ, パディング文字) 例: mystr = "hello" print(mystr.conter(10,'.'))効果は次のとおりです: '..hello. ..'
開始と終了の判定startswith(): 文字列が指定された部分文字列で始まるかどうかを確認し、そうであれば True を返し、それ以外の場合は False を返します。開始位置と終了位置の添字が設定されている場合、指定された範囲内で構文がチェックされます: str.startswith(substring,start,end)
例: mystr = 'hello world and itcast and ittheima and Python' print( mystr.startswith('hello')) print(mystr.startswith('hel')) print(mystr.startswith('hels')) endswith(): 文字列が指定された部分文字列で終わるかどうかを確認します。そうであれば、 True を返します。それ以外の場合は False を返します。開始位置と終了位置の添字を設定する場合は、指定された範囲内の構文を確認してください: str.endswith(substring,start,end)
例: mystr = 'hello world and itcast and itheima and Python' print ( mystr.endswith('Python')) print(mystr.endswith('Pythons'))
Judge isalpha(): 文字列に少なくとも 1 つの文字があり、すべての文字が文字の場合は True を返し、それ以外の場合は return False 構文: str.isalpha() 例: mystr = 'hello world と itcast と itheima と Python' print(mystr.isalpha()) isdigit(): 文字列に数字のみが含まれている場合は True を返し、それ以外の場合は False を返します。 str.isdigital()
例: mystr1 = '12345' print(mystr1.isdigit()) isalnum(): 文字列に少なくとも 1 つの文字があり、すべての文字が文字または数字である場合 構文: str. lsalnum ()
例: mystr2 = 'abc123' print(mystr2.isalnum()) isspace(): 文字列に空白のみが含まれる場合は True を返し、それ以外の場合は False を返します。構文: str.isspace()
例: mystr3 = ' 'print(mystr3.isspace())
List
リストの落とし穴:
リストは、データ構造 具体的な実施例
リストの形式[データ1、データ2、データ3]
業務上、リストには可能な限り同じ種類のデータを格納する
リスト操作:
Append(): リストの末尾にデータを追加します。 構文: list.append(data) 注: リストにデータを追加する場合、指定されたデータが元のリストに直接追加される、つまり元のリストが変更されるため、リストは変数型データになります。 append() によって追加されたデータがシーケンスの場合、シーケンス全体をリストに追加します
例: name_list = ['Tom','Lily','Rost'] name_list.append('xiaoming' ) print( name_list) # 結果: ['Tom','Lily','Rost','xiaoming'] extend(): データをリストの末尾に追加します。データがシーケンスの場合は、 、このシーケンスのデータを 1 つずつ追加します。リストに追加する構文: list.extend(data)
例: name_list = ['Tom','Lily','Rost'] name_list.extend(' xiaoming') print(name_list) # 結果: ['Tom','Lily','Rost','x','i','a',...] insert(): 指定します新しいデータを追加する位置 構文: list.insert(position Subscript, data) 例: name_list = ['Tom','Lily','Rost'] name_list.insert(1, 'xiaoming') print(name_list) # 結果: ['Tom','xiaoming' ,'Lily','Rost']
が存在するかどうかを判断します: 構文: str in list
例: name_list = ['トム','リリー','ロスト' ] print('リリー' inname_list) # True print('リリー' in name_list ) # Flase が含まれていません: 構文: str がリストにありません 例: name_list = ['Tom','Lily','Rost'] print('Lily' not in name_list) # Flase print('Lilys' not in name_list) # True
delの削除: 構文: delターゲットの例: name_list = ['Tom','Lily','Rost'] del name_list[0] print(name_list) # ['Lily' ,'Rost'] Pop(): 指定された添え字 (デフォルトは最後の添え字) のデータを削除し、データを返します。添え字に従っているか、最後の添え字を削除しているかに関係なく、pop 関数は戻り値を返します。削除されたデータ 構文: list .pop()
例: name_list = ['Tom','Lily','Rost'] del_name = name_list.pop(1) print(del_name) # 'Lily' print (name_list) # ['Tom','Rost']
remove(): リスト内の特定のデータの最初に一致する項目を削除します。 : list.remove(data)
例: name_list = ['Tom','Lily','Rose'] name_list.remove('Rose') print(name_list) # ['Tom' ','Lily'] clear(): リストをクリアします。 構文: list.clear() 例: name_list = ['Tom','Lily','Rost'] name_list.clear() print(name_list) # []
指定された添え字データを変更および修正します
例: name_list = ['Tom','Lily','Rost'] name_list[0] = 'aaa'print(name_list) # ['aaa','Lily','Rost'] reverse(): 逆の構文: list.reverse()
例: num_list = [1,5,2,3,6, 8] num_list.reverse() print(num_list) # [8,6,3,2,5,1]sort(): 並べ替え構文: list.sort(key=None,reverse=False) 注: reverse は並べ替えルールを表します。 reverse = True の降順、 reverse = False の昇順 (デフォルト)
#例: num_list = [1,5, 2,3,6,8] num_list.sort() print(num_list )# [1,2,3,5,6,8]
インデックス:index() を確認します。指定されたデータの場所のインデックスを返します -- 検索されているデータが存在しない場合は、エラーが報告されます 構文: list.index(data,start,end) 例: name_list = ['Tom' ,'Lily','Rose'] print(name_list.index('Lily',0,2))# 1 count(): 現在のリスト内で指定されたデータが継続する回数をカウントします。構文: list.count()
例: name_list = ['Tom','Lily','Rose'] print (name_list.count('Lily')) len(): アクセス リストの長さ、構文: len(list)例: name_list = ['Tom','Lily', 'Rose'] print(len(name_list))# 3
Copy copy(): データを保存するための新しいスペースを開きます 構文: list.copy() 例: name_list = ['Tom' ,'Lily','Rose'] name_li2 = name_list.copy() print(name_li2)# ['Tom','Lily','Rose']
Traverse while: in sequence リスト内の各データを出力します。例を示します。 : name_list = ['Tom','Lily','Rose'] i = 0while i # 結果: Tom Lily Rose for: リスト内の各データを順番に出力します。例: name_list = ['Tom','Lily','Rose'] for i in name_list: print(i) # 結果: Tom Lily Rose
リストのネストの概念: リストのネストとは、他のサブリストを含むリストを指します例: name_list = [['シャオミン','シャオホン','シャオグリーン'],['トム','リリー','ローズ'],['チャンサン','リーシー','王二']] print (name_list[2])# ['Zhang San','Li Si','Wang Er'] print(name_list[2][1]) # Li Si
タプル タプルの落とし穴:タプルには複数のデータを格納できますが、タプル内のデータは変更できませんタプルの形式: (データ 1 、データ 2、データ 3)#定義されたタプルにデータが 1 つだけある場合は、データの後にカンマを追加するのが最善です。そうしないと、データ型が一意になります。このデータのデータ型
作業では、タプルには可能な限り同じ種類のデータが格納されます。
タプルの操作:
添字でデータを検索します。例:tuple1 = ('aa',' bb','cc','bb') print(tuple1[0])
# aaindex(): 特定のデータを検索します。データが存在する場合は、対応する添え字を返します。それ以外の場合は、エラーが発生します。構文: 構文は、リストおよび文字列のインデックス メソッド - tuple.index (部分文字列) と同じです。例: tuple1 = ('aa','bb','cc','bb') print(tuple1 .index('aa')) # 0 count(): 現在のタプルに特定のデータが出現する回数をカウントします。 構文: tuple.count(data) 例: tuple1 = ('aa ','bb ','cc','bb') print(tuple1.count('bb')) # 1len(): タプル内のデータ数をカウントします 構文: len(tuple ) 例: tuple1 = ('aa','bb','cc','bb') print(len(tuple1)) # 4 タプル内の直接データを変更すると、すぐにエラーが報告されます。例: tuple1 = ('aa','bb','cc','bb') tuple1[0] = 'aaa' # エラーを報告 タプルにリストがある場合は、リスト内のデータを変更します。例: tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50 , 30) print(tuple2[2]) # リストにアクセス tuple2[2][0] = 'aaaaa' print(tuple2) # (10, 20, ['aaaaa', ' bb', 'cc'], 50, 30) Dictionary 辞書の落とし穴: 辞書内のデータは、キーの形式で表示されます。値のペア。辞書データはデータの順序とは関係がありません。つまり、辞書は添字をサポートしていません。後でデータがどのように変化しても、対応するキーの名前に従ってデータを検索するだけで済みます 辞書の形式: {'key1':value1, 'key2':value2} 辞書の操作: Add dict[key] = value: 構文: Dictionary シリーズ[key] = value 注: キーが存在する場合は、キーに対応する値を変更し、キーが存在しない場合は、キーの値を追加します。辞書は変数タイプです。例: dict1 = {'name':'Tom', 'age':20; 'gender':'male'} dict1['name'] = 'Rose' print(dict1) # {'名前':'ローズ', '年齢':20; '性別':'男性'} dict1['id'] = 110 print(dict1) # {'名前': 'トム' , '年齢':20; '性別':'男性', 'id':110} dict(zip(list1,list2)): 構文: dict(zip(list1,list2)) 注: 2 つのリスト データの数は同じである必要があります例: a = [1,2,3,4] b = [1,2,3,4] c = dict(zip(a,b)) print( c) # { 1:1, 2:2, 3:3, 4:4} Delete del()/ del: 辞書を削除するか、指定されたキーと値のペアを削除します。辞書内 構文: del dict 例: dict1 = {'name':'Tom', 'age':20, 'gender':'male'} del dict1['gender'] print( dict1) # {'name':' Tom', 'age':20} clear(): 辞書をクリアします 構文: dict.clear() 例: dict1 = {'name':'Tom ', 'age':20, 'gender':' Male '} dict1.clear() print(dict1) # {} 変更と修正: 構文: 辞書シーケンス [key ] = value 注: キーが存在する場合は、 key に対応する値を変更し、キーが存在しない場合は、このキーと値のペアを追加します。例: dict1 = {'name':'Tom', 'age': 20; '性別':'男性'} dict1['名前'] = 'ローズ' print (dict1) # {'名前':'ローズ', '年齢':20; '性別':'男性' } 検索キー構文: dict[key]注: 現在検索されているキーが存在する場合は、対応する値が返されます。そうでない場合は、エラーが報告されます。例: dict1 = {'name ':'トム', '年齢':20; '性別':'男性'} print(dict1['name'] ) # Tomprint(dict1['id']) #エラー報告 get() 構文: 辞書シーケンス.get(キー, デフォルト値) 注: 現在検索されているキーが存在しない場合は、第 2 パラメータ (デフォルト値) が返されます。第 2 パラメータが省略された場合は、None が返されます。例: dict1 = {'name':'Tom', 'age':20; 'gender':'male'} print( dict1.get('name')) # Tomprint( dict1.get('id',100)) # 100 print(dict1.get('id')) # None Keys() 構文: dict.keys() 次に例を示します。 : dict1 = {'名前':'トム', '年齢':20; '性別':'男性'} print(dict1.keys( )) # dict_keys(['名前','年齢','性別']) value() 構文: dict.values() 例: dict1 = {'名前':'トム', '年齢 ':20; '性別':'男性'} print(dict1.values ()) # dict1.values(['Tom',20,'']) items() 構文: dict1.items ()例: dict1 = {'name':'Tom', '年齢':20; '性別':'男性'} print(dict1.items()) # dict_items([('名前','トム'),('年齢',20),('性別' 、'男')])###### 辞書のキーを走査します (例: dict1 = {'name':'Tom', 'age':20; 'gender':'male'} for key in dict1 .keys(): print(key) # 結果: 名前 年齢 性別 辞書の値を調べます。例: dict1 = {'name':'Tom', 'age ':20; 'gender':'男性 '} for key in dict1.values(): print(key) # 結果: Tom 20 Male Traverse辞書の要素 例: dict1 = {'name ':'Tom', 'age':20; 'gender':'male'} for key in dict1。 items(): print(key) # result : ('name','Tom') ('age',20) ('gender','male')辞書 (解凍) 例: dict1 = {'name':'Tom ', 'age':20; 'gender':'male'} for key,values in dict1.items(): print(f'{key} = {values} ') # 結果: 名前 = トム 年齢 = 20 性別 = 男性 コレクション コレクションの落とし穴: {} または set() を使用してコレクションを作成しますが、空のコレクションを作成したい場合は、set() のみを使用できます。これは、{} を使用すると辞書が作成されるためです コレクションには順序がないため、コレクションは添字操作をサポートしません コレクション データには重複排除機能があります コレクション操作: データの追加 add() 構文: set.add() 注: コレクションには重複排除機能があるため、コレクションに追加するデータが現在のコレクション内の既存のデータである場合、操作は実行されません。例: s1 = {10,20} s1.add(100) s1.add(10) print(s1) # { 100, 10, 20} update(): 構文: set.update(list) 注:追加されるデータはシーケンスです。例: s1 = {10, 20} # s1.update(100) # エラーレポート s1.update([100, 200]) s1.update('abc' ) print(s1) # {'c', 100, 'a', 200, 10, 20, 'b'} データの削除remove() 構文: set.remove( ) 注: コレクション内の指定されたデータを削除します。データが存在しない場合は、エラーが報告されます。例: s1 = {10, 20} s1.remove(10) print(s1) # {20 } s1.remove(10) print(s1) # エラーレポート destroy() 構文: set.discard() 注: コレクション内の指定されたデータを削除します。データが存在しません。例: s1 = {10, 20} s1.discard(10) print(s1) s1.discard(10) print(s1) Pop() 構文: set.pop() 注: 特定のデータをランダムに削除しますコレクション内のデータを検索し、このデータを返します。例: s1 = {10, 20, 30, 40,50} del_num = s1.pop() print(del_num) print(s1) 次の場所でデータを検索します。データが設定されたシーケンス内にあることを判断する not in: データが設定されたシーケンス内にないことを判断する 例: s1 = {10, 20, 30, 40, 50} print(10 in s1 ) print(10 not in s1) パブリック オペレーション Operator オペレータの説明 サポートされているコンテナ タイプ 文字列、リストのマージ、タプル* 要素内に文字列、リスト、タプルが存在するかどうかをコピー 要素内に文字列、リスト、タプル、辞書、セットが存在しないかどうか 例: # # 1. 文字列 str1 ='aa'str2 ='bb'str3 = str1 str2print(str3)# aabb# 2. リスト list1 = [1, 2]list2 = [10, 20]list3 = list1 list2print( list3)# [1, 2, 10, 20]# 3. タプル t1 = (1, 2)t2 = (10, 20)t3 = t1 t2print(t3)# (10, 20, 100, 200) # * # 1. 文字列 print('-'* 10)# ----------# 2. リスト list1 = ['hello']print(list1 * 4)# ['hello', ' hello', ' hello', 'hello']# 3. タプル t1 = ('world',)print(t1 * 4)# ('world', 'world', 'world', 'world')# に含まれるか含まれない # 1 . String print('a'in'abcd')# Trueprint('a'notin'abcd')# False# 2. リスト list1 = ['a','b','c', 'd']print( 'a'inlist1)# Trueprint('a'notinlist1)# False# 3. タプル t1 = ('a','b','c','d')print('aa' int1)# Falseprint('aa 'notint1)# True パブリック メソッド 関数の説明 len() はコンテナ内の要素の数を計算します del または del() は削除します max() はコンテナ内の要素を返します 最大値min() は、コンテナ内の要素の最小値を返します。 Range(start, end, step) は、開始から終了までのステップ長の数値を生成します。これは、for ループで enumerate() 関数を使用して変換するために使用されます。走査されたデータ オブジェクト (リスト、タプル、文字列など) がインデックス シーケンスに結合され、データとデータ添字が同時にリストされます。通常は for ループで使用されます。例: ### # len()# 1. 文字列 str1 ='abcdefg'print(len(str1))# 7# 2. リスト list1 = [10,20,30,40]print(len(list1))# 4 # 3. タプル t1 = (10,20,30,40,50)print(len(t1))# 5# 4. s1 = {10,20,30}print(len(s1))# 3# 5 を設定します。辞書 dict1 = {'name':'Rose','age':18}print(len(dict1))# 2# del()# 1. 文字列 str1 ='abcdefg'delstr1print(str1)# 2. リスト list1 = [10,20,30,40]del(list1[0])print(list1)# [20, 30, 40]# max()# 1. String str1 ='abcdefg'print(max(str1 ))# g# 2. リスト list1 = [10,20,30,40]print(max(list1))# 40# min()# 1. 文字列 str1 ='abcdefg'print(min(str1))# a# 2. リスト list1 = [10,20,30,40]print(min(list1))# 10# range() -- range() によって生成されたシーケンスには終了番号が含まれません # 1 2 3 4 5 6 7 8 9foriinrange( 1, 10,1): print(i)# 1 3 5 7 9foriinrange(1,10,2): print(i)# 0 1 2 3 4 5 6 7 8 9foriinrange(10): print(i)# enumerate () -- enumerate(traversable object, start=0)list1 = ['a','b','c','d','e']foriinenumerate(list1): print(i)forindex,charinenumerate (list1, start =1): print(f' 添字は {index}、対応する文字は {char}') コンテナ型変換 tuple() 関数: シーケンスをタプルに変換します。たとえば、 list1 = [10, 20, 30, 40, 50, 20] s1 = {100, 200, 300, 400, 500} print(tuple(list1)) print(tuple(s1)) List() 関数: シーケンスをリストに変換します。例: t1 = ('a', 'b', 'c', 'd', 'e') s1 = {100, 200, 300, 400, 500 } print(list(t1)) print(list(s1)) set() 関数: シーケンスをセットに変換します。例: list1 = [10, 20, 30, 40 , 50, 20 ] t1 = ('a', 'b', 'c', 'd', 'e') print(set(list1)) print(set(t1)) # 1. セットはリストの重複排除を迅速に完了できます # 2. セットは添字をサポートしません 導関数 -- 生成式 リスト内包表記関数: 式を使用します。 通常のリストを作成するか、通常のリストを制御します。例: # while ループの実装 # 1. 空のリストを用意します list1 = [] # ループを記述し、順番に追加します 空のリスト list1 に数値が追加されます i = 0 while i # for ループの実装 # 1. 辞書を作成します: 辞書のキーは 1 ~ 5 の数字、値はこの数値の 2 乗 dict1 = {i:i**2 for i in range(1, 5)} print(dict1) # {1 : 1 , 2: 4, 3: 9, 4: 16} # 2. 2 つのリストを 1 つの辞書にマージします list1 = ['名前', '年齢', '性別'] list2 = [ 'トム', 20, 'マン'] dict1 = {list1[i]: list2[i] for i inrange(len(list1))} print( dict1) # 3. 辞書内の対象データを抽出します counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99} # 要件: 上記のコンピュータ数が 200 count1 = {key: value for key, value in counts 以上の辞書データを抽出します。 items() if value >= 200} print(count1) # {'MBP':268, 'DELL': 201} # セットを作成します。データは以下のリストの 2 乗です list1 = [1, 1, 2] list1 = [1, 1, 2] set1 = {i ** 2 for i in list1} print(set1) # {1, 4} #=、==、is の違い: = 代入演算、渡されるのは id 、type、value== 値が等しいかどうかを決定します。 id が等しいかどうかを決定します 小整数オブジェクト プールは、小整数オブジェクト用のオブジェクト プール テクノロジを使用します。小さい整数の範囲を [-5,256] に設定します。この範囲内の小さな整数、同一の整数はすべて同じオブジェクトです。同様に、同じことが単一の文字にも当てはまります。Python の初期化時に小さな整数のバッファ プールが作成されます。インターン メカニズムはスペースと単語の再利用の機会を処理します。 .は大きいので1回作成 スペースがある場合は複数回作成 ただし文字列長が20を超える場合は1回作成されない a = -5 b = -5 a is b # True a = 256 b = 256 a is b # True a = 1000 b = 1000 a is b # True a = 'abc' b = 'abc' a is b # True a = 'helloworld' b = 'helloworld' a is b # True a = 'hello world' b = 'hello world' a is b # False 大きい整数オブジェクト プールが小さい整数の範囲を超え、大きい整数になるたびに、新しいオブジェクトが作成されます。ただし、コード ブロック内の大きな整数は同じオブジェクトです。ターミナルは毎回 1 回実行されるため、大きな整数は毎回再作成されます。pycharm では、すべてのコードは実行されるたびにメモリにロードされ、全体に属するため、大きな整数オブジェクト プールが存在します。今回は、つまり、コード ブロック内の大きな整数は、pycharm の同じオブジェクトです。実行されるたびに、すべてのコードがメモリに読み込まれ、全体に属するため、この時点では大きな整数オブジェクトが存在します。プール、つまりコード ブロック内の大きな整数です。同じオブジェクトです。 a = 1000 b = 1000 a is b # False a = -1888 b = -1888 a is b # False class C1(オブジェクト): a = 100 b = 100 c = 1000 d = 1000 class C2(objcet): a = 100 b = 1000 print(C1.a is C1.b) # True print(C1.a is C1.a) # True print(C1.c is C1.d) # True print(C1.d is C1.b) # Falsec ループ内でデータを生成します 条件が満たされない場合は データの生成が終了します データは一度に生成されませんが、1 つを使用して別のデータを生成すると、 大量のメモリを節約できます # を使用してジェネレーターを作成します my_generator = (i * 2 for i in range(5)) print(my_generator) defmygenerator (n): for i in range(n): print('生成開始...') yield i print('一度完了... ') 注: コードを実行して譲歩すると、一時停止して結果が返されます。次にジェネレータが開始されると、一時停止した位置でジェネレータの実行が継続されます。が生成され、ジェネレーター内の次のデータが再度取得されると、StopIteration 例外がスローされます。これは、while ループ内に例外処理操作がないことを示し、例外処理操作を手動で追加する必要があります。反復停止例外は次のとおりです。 for ループ内で自動的に処理されるため、より使いやすくなります。ジェネレーター 関連する無料学習の推奨事項:プログラミング ビデオ
以上がPython のデータ型についての最も詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。