ゼロベース学習Python|Python上級学習5日目

著者ホームページ:プログラミングコンパス

著者について: Java 分野の高品質クリエイター、CSDN ブログ エキスパート
、CSDN コンテンツ パートナー、Nuggets の招待著者、Alibaba Cloud ブログ エキスパート、51CTO 招待著者、長年のアーキテクト設計経験、Tencent 教室の常駐講師

主な内容:Javaプロジェクト、Pythonプロジェクト、フロントエンドプロジェクト、人工知能とビッグデータ、履歴書テンプレート、教材、面接質問バンク、技術相互支援

お気に入り、いいね、迷わず作者フォローすると良いです

記事の最後にあるソースコードを入手してください

1. 辞書

ディクショナリはリストに似ており、変数シーケンスでもありますが、順序付けされておらず、Java の Map コレクションに似たキーと値のペアの形式でデータを格納します。

辞書のキーは一意かつ不変で、数値、文字列、またはタプルをキーとして使用できますが、リストをキーとして使用することはできません。

1.1 辞書の作成と削除

辞書作成の基本構文:

dictionary = {
    
    'key':value,'key1':value1,....'keyn':valuen}

空の辞書の作成:

dictionary = {
    
    }
dictionary = dict()

dict() 関数は、空の辞書を作成するだけでなく、既存のデータから辞書を迅速に作成することもできます。主に次の 2 つの形式があります。

1. マッピング機能によるディクショナリ表の作成

dictionary = dict(zip(list1,list2))
* dictionary 为字典名
* zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想得到元组,可以使用tuple()函数将zip对象转换为元组;如果想得到列表,则可以使用list()函数将其转换为列表。
* list1:一个列表,用于指定要生成字典的键
* list2:一个列表,用于指定要生成字典的值
* 返回值:如果list1和list2长度不同,则与最短的列表长度相同

例:

#示例1  通过dict()进行字典创建
name = ['马丽','沈腾','岳云鹏']  #作为键的列表
sign = ['喜剧','小品','相声'] #作为值的列表
dictionary = dict(zip(name,sign)) #转换为字典
print(dictionary)

2. 指定されたキーと値のペアを使用して辞書を作成します。

dictionary = dict(key1=value1,key2=value2,...keyn=valuen)
* dictionary 为字典名
* key1、key2...keyn:表示元素的键,必须是唯一的,并且不可变,可以是字符串、数字或元组。
* value1、value2..valuen:表示元素的值,可以是任何数据类型,不是必须唯一。

例:

dictionary = dict(邓肯='石佛',吉诺比利='妖刀',帕克='跑车')
print(dictionary)

この食事では、dict オブジェクトの fromkeys メソッドを通じて空の辞書を作成することもできます。

dictionary = dict.fromkeys(list1)
* dictionary 表示字典名称
* list1 作为字典的键的列表

例:

name_list =['邓肯','吉诺比利','帕克']
dictionary = dict.fromkeys(name_list)
print(dictionary)

あるいは、既存のタプルとリストから辞書を作成することもできます。

name_tuple =('邓肯','吉诺比利','帕克')
sign = ['石佛','妖刀','跑车']
dict1 = {name_tuple:sign}
print(dict1)

考察: 上記の例を逆にすると、リストをキーとして使用し、タプルを値として使用することは可能でしょうか?

辞書の削除:

del dictionary

空の辞書: 辞書要素を空の辞書に入れます。

dictionary.clear()

1.2 キーと値のペアを介した辞書へのアクセス

dictionary = {'邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
print(dictionary['帕克'])

このように、KEY が存在しない場合は例外が報告されます。

それは次のように判断することで解決できます。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
if '帕克' in list(dictionary.keys()):
   print(dictionary['帕克'])
else:
   print('查无此人')

このような問題を解決するには、Python では get メソッドを使用することをお勧めします。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
print(dictionary.get('帕克','查无此人'))

1.3 辞書を調べる

ディクショナリの items() メソッドを通じてディクショナリのすべてのキーと値のペアを取得し、それらを周期的に抽出できます。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for item in dictionary.items():
   print(item)

各キーと値のペアの KEY と VALUE をさらに詳細に取得したい場合は、次のようにします。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for key,value in dictionary.items():
   print(key,'绰号是',value)

ディクショナリ オブジェクトには、ディクショナリの値とキーを取得するための value() と key() も用意されており、トラバースして次のものを取得します。

dictionary = {'邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for key in dictionary.keys():
    print('key:',key)
    print('value:',dictionary.get(key,'查无此人'))
dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for value in dictionary.values():
   print(value)

1.4 要素の追加、変更、削除

辞書は変更可能なシーケンスであるため、必要に応じていつでも「キーと値のペア」を追加できます。

dictionary[key]=value

例:

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
dictionary['乔丹']='飞人'
print(dictionary)

既存のキー値を変更できます。キーは一意であり、追加された値は前の値を上書きします。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
dictionary['邓肯']='大佛'
print(dictionary)

del を使用してキー値を削除できます。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
del dictionary['邓肯']
print(dictionary)

存在しないキー値を削除するとエラーが報告され、処理を判断できます。

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
if '邓肯' in dictionary:
   del dictionary['邓肯']
print(dictionary)

1.5 辞書の理解

辞書内包表記を使用して、辞書を迅速に生成します。

import random
randomdict = {
    
    i:random.randint(10,100) for i in range(1,5)}
print('生成的字典为:',randomdict)

出力:

生成的字典为: {1: 39, 2: 49, 3: 74, 4: 43}

2、コレクション

セットは、重くない要素を格納するために使用されます。順序付けされていません。変数セット (set) と不変セット (frozenset) の 2 つのタイプがあります。今回はセットについてのみ説明します。セットは実際には Java のセットに非常に似ています。その主なアプリケーション シナリオは、一連の固有の要素データを保存することです。

2.1 コレクションの作成

1. { } を直接使用して以下を作成します。

setname = {element1,element2,....elementn}

コレクション要素のタイプは制限されません。

set1 = {'str1','str2','str3'}
set2 = {1,2,3,4,5,6}
set3 = {'Python',30,('人生苦短','我学Python')}

2. set() 関数を使用してコレクションを作成します

setname = set(iteration)
* setname  集合名字
* iteartion 可迭代的对象,比如:列表、元组、range对象等,如果是字符串,则返回包含不重复的字符集合

例:

set1 = set('命运给我们的不是失望之酒,而是希望之杯。')
set2 = set([1.45,3.22,4,6])
set3 = set(('人生苦短','我学Python'))
print(set1)
print(set2)
print(set3)

Python では、set() を使用してコレクションを作成することをお勧めします。

空のコレクションを作成する場合、{} は空の辞書の作成に使用されるため、{} の代わりに set() のみを使用できます。

2.2 コレクションの追加と削除

コレクションの追加:

setname.add(element)
* 添加的元素只能是数字、字符串或布称类型的True和False,不能使用列表、元组等可迭代对象

例:

set1 = {'str1','str2','str3'}
set1.add('str4')
print(set1)

コレクションの削除:

del を使用してコレクション全体を削除したり、pop() および Remove() を使用して要素を削除したりできます。コレクションは、clear() を使用して空にすることもできます。

#示例 集合的删除
set1 = {
    
    'str1','str2','str3'}
set1.remove('str3')  #移除指定的元素
set1.pop()   #移除集合左边第一个
print(set1)

2.3 集合の交差、和集合、差分演算

交差演算では「&」記号を使用します。これは、2 つのセットの繰り返し部分を計算するために使用されます。

結合演算では '|' を使用して 2 つのセットの結合を計算します (重複を削除します)。

差分演算では「-」を使用して、両側にある要素を削除します。

例:

set1 = {
    
    'java','python','c++'}
set2 = {
    
    'python','html','css'}
print('交集运算:',set1&set2)
print('并集运算:',set1|set2)
print('差集运算:',set1-set2)

出力結果:

交集运算: {'python'}
并集运算: {'python', 'html', 'c++', 'java', 'css'}
差集运算: {'c++', 'java'}

これまでリスト、タプル、辞書、シーケンスのセットについて説明してきましたが、それらの違いをまとめてみましょう。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/whirlwind526/article/details/132376801