当前位置:   article > 正文

python学习(8)——字典dict,创建、len()、in和not in、修改、复制、删除、遍历_python dict in

python dict in

字典 dict

1、创建方法

(1)字典语法1:
         d = {key:value,key:value,key:value}
        字典的值(value)可以是任意对象,字典的键(key)可以是任意的不可变对象(int\str\bool\tuple)
         字典的键(key)不可重复

  1. d_1 = {'name':'曹操','age':'50','gender':'男'}
  2. print(d_1)
  3. # 根据键来获取值
  4. print(d_1['name'])
  5. print(d_1['age'])
  6. print("="*50)

================================================== 

{'name': '曹操', 'age': '50', 'gender': '男'}
曹操
50
================================================== 

(2)字典语法2:

        使用dict()函数:

        方法【1】

  1. d_2 = dict(name='刘备',age=50,gender='男')
  2. print(d_2)
  3. # 根据键来获取值
  4. print(d_2['name'])
  5. print(d_2['age'])
  6. print("="*50)

==================================================
{'name': '刘备', 'age': 50, 'gender': '男'}
刘备
50
==================================================

        方法【2】

  1. d_3 = dict([('name','孙权'),('age',18),('gender','男')])
  2. print(d_3)
  3. # 根据键来获取值
  4. print(d_3['name'])
  5. print(d_3['age'])
  6. print("="*50)

==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
孙权
18
==================================================

2、获取字典中的值

         get(key[,default])
        根据键来获取字典中的值,若获取的键在字典中不存在,会返回None

  1. print(d_3)
  2. print(d_3.get('name'))
  3. print(d_3.get('country'))
  4. print(d_3.get('country','默认值'))# 获取不到时,返回特定的值
  5. print("="*50)

==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
孙权
None
默认值
==================================================

3、 len()

         len()获取字典中键值对的个数

  1. print(d_3)
  2. print(len(d_3))
  3. print("="*50)

==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
3
==================================================

4、in 和 not in

        in ,检查字典中是否包含指定的键,
        not in ,检查字典中是否不包含指定的键

  1. print(d_3)
  2. print('name' in d_3)
  3. print('country' in d_3)
  4. print("="*50)

==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
True
False
==================================================

5、修改字典

        (1) d[key] = value

        如果key存在则覆盖,不存在则添加

  1. print(d_3)
  2. d_3['name'] = '孙策'
  3. print(d_3)
  4. d_3['country'] = '吴国' # 不存在,则添加
  5. print(d_3)
  6. print("="*50)

==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
{'name': '孙策', 'age': 18, 'gender': '男'}
{'name': '孙策', 'age': 18, 'gender': '男', 'country': '吴国'}
==================================================

        (2)setdefault(key[,default])

        如果key已经存在于字典中,则返回key的值,不对字典进行操作
        如果key不存在,则向字典中添加这个key,并设置value

  1. print(d_2)
  2. result = d_2.setdefault('name','诸葛亮')
  3. print(result)
  4. result = d_2.setdefault('country','蜀国')
  5. print(result)
  6. print(d_2)
  7. print("="*50)

==================================================
{'name': '刘备', 'age': 50, 'gender': '男'}
刘备
蜀国
{'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'}
==================================================

        (3)update([other])
         将其他字典中的key-value添加到当前字典中
        如果有重复的key,则后边的会替换到当前的

  1. print('d_1=',d_1)
  2. d_4 = dict(name='曹操',country='魏国',job='丞相')
  3. print('d_4=',d_4)
  4. result =d_1.update(d_4) # 返回值是 none
  5. print(result)
  6. print('d_1_uptate=',d_1)
  7. print("="*50)

==================================================
d_1= {'name': '曹操', 'age': '50', 'gender': '男'}
d_4= {'name': '曹操', 'country': '魏国', 'job': '丞相'}
None
d_1_uptate= {'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国', 'job': '丞相'}
==================================================

6、删除操作
        (1)del,删除字典中的key-val

  1. print(d_1)
  2. del d_1['job'
  3. print(d_1)
  4. print("="*50)

==================================================
{'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国', 'job': '丞相'}
{'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国'}
==================================================

        (2) pop(key[,default])
# 根据key删除字典中的key-value,并返回被删除的value
# 若删除不存在的key,会报错;如果指定了默认值,再删除不存在的key,则会返回默认值

  1. print(d_1)
  2. result = d_1.pop('country')
  3. print(result)
  4. print(d_1)
  5. result = d_1.pop('job','key不存在')
  6. print(result)
  7. print(d_1)
  8. print("="*50)

==================================================
{'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国'}
魏国
{'name': '曹操', 'age': '50', 'gender': '男'}
key不存在
{'name': '曹操', 'age': '50', 'gender': '男'}
==================================================

        (3) claer()     清空字典

  1. print(d_1)
  2. d_1.clear()
  3. print(d_1)
  4. print("="*50)

==================================================
{'name': '曹操', 'age': '50', 'gender': '男'}
{}
==================================================

7、 复制操作
# copy(),用于对字典进行浅复制,复制后的对象和原对象是独立的,修改一个不会影响另一个
# 注意,浅复制会简单复制对象内部的值,如果值也是一个可变对象,则这个可变对象不会被复制

  1. d_5 = d_2 #指向同一对象
  2. d_6 = d_2.copy() #新建一个对象
  3. print('d_2=',d_2,id(d_2))
  4. print("d_5=",d_5,id(d_5))
  5. print('d_6=',d_6,id(d_6))
  6. print("="*50)

==================================================
d_2= {'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'} 1783221749944
d_5= {'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'} 1783221749944
d_6= {'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'} 1783191858488
==================================================

8、 遍历字典
        (1)keys()
        该方法会返回字典的所有的key,为一个序列,序列中保存有字典的所有的键(key)

  1. print(d_2)
  2. print(d_2.keys())     # 获取所有键
  3. for k in d_2.keys():    # 遍历key()获取所有键
  4.     print(k,d_2[k])
  5. print("="*50)

==================================================
{'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'}
dict_keys(['name', 'age', 'gender', 'country'])
name 刘备
age 50
gender 男
country 蜀国
==================================================

        (2)values()
        该方法会返回一个序列,序列中保存有字典的所有的值

  1. for v in d_2.values():
  2.     print(v)
  3. print("="*50)

==================================================
刘备
50

蜀国
==================================================

 (3)items()
# 该方法返回字典中所有的项
# 它会返回一个序列,序列包含有双值子序列,双值是,key,value

  1. print(d_2.items())
  2. for k,v in d_2.items():
  3.     print(k,'=',v)
  4. print("="*50)

==================================================
dict_items([('name', '刘备'), ('age', 50), ('gender', '男'), ('country', '蜀国')])
name = 刘备
age = 50
gender = 男
country = 蜀国
==================================================

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/515505
推荐阅读
相关标签
  

闽ICP备14008679号