zoukankan      html  css  js  c++  java
  • 31.字典的常见操作

    字典的常见操作1

    <1>查看元素

    除了使用key查找数据,还可以使用get来获取数据

    demo:

    info = {'name':'吴彦祖','age':18}
    
    print(info['age']) # 获取年龄
    
    # print(info['sex']) # 获取不存在的key,会发生异常
    
    print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常

    <2>修改元素

    字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改

    demo:

    info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
    
    newId = input('请输入新的学号')
    
    info['id'] = int(newId)
    
    print('修改之后的id为%d:'%info['id'])

    <3>添加元素

    demo:访问不存在的元素

     info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
    
     print('id为:%d'%info['id'])

    如果在使用 变量名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

    demo:添加新的元素

    info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
    
    # print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键
    
    newId = input('请输入新的学号')
    
    info['id'] = newId
    
    print('添加之后的id为:%d'%info['id'])

    结果:

    请输入新的学号188
    添加之后的id为: 188

    <4>删除元素

    对字典进行删除操作,有一下几种:

    • del
    • clear()

    demo:del删除指定的元素

    info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}
    
    print('删除前,%s'%info['name'])
    
    del info['name']
    
    print('删除后,%s'%info['name'])

    结果

     demo:del删除整个字典

    info = {'name':'monitor', 'sex':'f', 'address':'China'}
    
    print('删除前,%s'%info)
    
    del info
    
    print('删除后,%s'%info)

    结果

     demo:clear清空整个字典

    info = {'name':'monitor', 'sex':'f', 'address':'China'}
    
    print('清空前,%s'%info)
    
    info.clear()
    
    print('清空后,%s'%info)

    结果

     例子1(查看元素):

    # 字典是可变的数据类型
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    
    # <1>查看元素(通过key 获取value)
    # 变量名 = 字典名[key]
    my_name = my_dict["name"]
    print(my_name)

    运行结果:

    小明

    例子2(修改元素):

    # 字典是可变的数据类型
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <2>修改元素 (如果key存在)
    # 字典名[key] = 数值
    my_dict["age"] = 23
    print(my_dict)

    运行结果:

    {'age': 23, 'name': '小明'}

    例子3(添加元素):

    # 字典是可变的数据类型
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <3>添加元素 (如果key不存在)
    # # 字典名[key] = 数值
    my_dict["no"] = "007"
    print(my_dict)

    运行结果:

    {'no': '007', 'name': '小明', 'age': 20}

    例子4(删除元素):

    # 字典是可变的数据类型
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <4>删除元素
    # del (通过key删除字典的键值对)
    del my_dict["age"]
    print(my_dict)

    运行结果:

    {'name': '小明'}

    例子5(清空):

    # 字典是可变的数据类型
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <4>清空元素
    # clear
    # my_dict = {}
    my_dict.clear()
    print(my_dict)

    运行结果:

    {}

    字典的常见操作2

    <1>len()

    测量字典中,键值对的个数

    <2>keys

    返回一个包含字典所有KEY的列表

    <3>values

    返回一个包含字典所有value的列表

    <4>items

    返回一个包含所有(键,值)元祖的列表

     

    <5>has_key (Python3 已取消)

    dict.has_key(key)如果key在字典中,返回True,否则返回False

    例子1:

    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <1>len() -> str list tuple dict range
    l = len(my_dict)
    print(l)

    例子2:

    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <2>keys
    # 返回一个包含字典所有KEY的列表
    # python3.x中返回的是一个对象
    # python2.x中返回的就是一个列表
    keys_list = my_dict.keys()
    print(list(keys_list))

    运行结果:

    ['age', 'name']

    例子3:

    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <3>values
    # 返回一个包含字典所有value的列表
    values_list = my_dict.values()
    print(list(values_list))

    运行结果:

    ['小明', 20]

    例子4:

    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <4>items
    # 返回一个包含所有(键,值)元祖的列表
    items_list = my_dict.items()
    print(list(items_list))

    运行结果:

    [('age', 20), ('name', '小明')]

    例子5:

    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # <5>has_key (Python3 已取消)
    # dict.has_key(key)如果key在字典中,返回True,否则返回False
    # name = "hello"
    # if "e" in name:
    #     print("存在")

    例子6:

    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # # 通过key 获取value
    my_name = my_dict["name1"]
    print(my_name)
    # if "name" in my_dict:
    #     print("存在")
    # 通过in 或者not in 判断key是否存在

    例子7:

    # <6> setdefaut
    # # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # 如果key存在 会返回对应的value
    # 如果key不存在 那么会使用其默认值 而且会把这个不存在的key和默认值组成一个新的键值对添加到字典中
    my_name = my_dict.setdefault("name1", "哈哈")
    print(my_name)
    print(my_dict)

    运行结果:

    哈哈
    {'age': 20, 'name': '小明', 'name1': '哈哈'}

    例子8:

    # <7> get
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # 如果key存在 会返回对应的value
    # 如果key不存在 那么会使用其默认值 字典不会发生任何改变
    my_name = my_dict.get("name1", "哈哈")
    print(my_name)
    print(my_dict)

    运行结果:

    哈哈
    {'age': 20, 'name': '小明'}
    # <8> 字典通过key获取value 的方式有几种?
    # dict[key]
    # dict.setdefaut(key)
    # dict.get(key)

    遍历

    通过for ... in ... 我们可以遍历字符串、列表、元组、字典等

    注意python语法的缩进

    字符串遍历

    >>> a_str = "hello itcast"
    >>> for char in a_str:
    ...     print(char,end=' ')
    ...
    h e l l o   i t c a s t

    列表遍历

    >>> a_list = [1, 2, 3, 4, 5]
    >>> for num in a_list:
    ...     print(num,end=' ')
    ...
    1 2 3 4 5

    元组遍历

    >>> a_turple = (1, 2, 3, 4, 5)
    >>> for num in a_turple:
    ...     print(num,end=" ")
    1 2 3 4 5

    字典遍历

    <1> 遍历字典的key(键)

    <2> 遍历字典的value(值)

    <3> 遍历字典的项(元素)

    <4> 遍历字典的key-value(键值对)

     想一想,如何实现带下标索引的遍历

    >>> chars = ['a', 'b', 'c', 'd']
    >>> i = 0
    >>> for chr in chars:
    ...     print("%d %s"%(i, chr))
    ...     i += 1
    ...
    0 a
    1 b
    2 c
    3 d

    enumerate()

    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

    >>> chars = ['a', 'b', 'c', 'd']
    >>> for i, chr in enumerate(chars):
    ...     print i, chr
    ...
    0 a
    1 b
    2 c
    3 d

    例子1:

    # 可以进行循环遍历的类型()
    # str
    for c in "hello":
        print(c)

    例子2:

    # list
    for value in [1, 3, 5]:
        print(value)

    例子3:

    # tuple
    for value in (2, 4, 6):
        print(value)

    例子4:

    # range
    for i in range(5):
        print(i)

    例子5:

    # dict
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # key
    # my_dict == my_dict.keys()
    for k in my_dict.keys():
        print(k)

    运行结果:

    age
    name

    例子6:

    # dict
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # value
    for v in my_dict.values():
        print(v)

    运行结果:

    20
    小明

    例子7:

    # dict
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # items
    for item in my_dict.items():
        print(item)

    运行结果:

    ('age', 20)
    ('name', '小明')

    例子8:

    # dict
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # items
    for item in my_dict.items():
        print("key=%s, value=%s" % (item[0], item[1]))

    运行结果:

    key=age, value=20
    key=name, value=小明

    例子9:

    # dict
    # 定义一个字典
    my_dict = {"name": "小明", "age": 20}
    # items
    # 如果想直接使用key 和 value 可以这么写
    # item == k, v
    # 记住 第一个肯定是key  第二个肯定是value
    for k, v in my_dict.items():
        print("key=%s, value=%s" % (k, v))

    运行结果:

    key=name, value=小明
    key=age, value=20

    例子10:

    my_list = list("ABCD")
    print(my_list)

    运行结果:

    ['A', 'B', 'C', 'D']

    例子11:

    # 需求
    my_list = list("ABCD")
    print(my_list)
    # 请帮我打印每个数值 而且打印每个数值在列表的位置(下标索引)
    i = 0
    while i < len(my_list):
        value = my_list[i]
        print("第%d个位置的元素是%s" % (i, value))
        i += 1

    或者:

    # 需求
    my_list = list("ABCD")
    print(my_list)
    # 请帮我打印每个数值 而且打印每个数值在列表的位置(下标索引)
    i = 0
    for value in my_list:
        print("第%d个位置的元素是%s" % (i, value))
        i += 1

    运行结果:

    ['A', 'B', 'C', 'D']
    第0个位置的元素是A
    第1个位置的元素是B
    第2个位置的元素是C
    第3个位置的元素是D

    例子12:

    # 需求
    # 请帮我打印每个数值 而且打印每个数值在列表的位置(下标索引)
    my_list = list("ABCD")
    print(my_list)
    print(enumerate(my_list))
    for i, value in enumerate(my_list):
        print("第%d个位置的元素是%s" % (i, value))

    运行结果:

    ['A', 'B', 'C', 'D']
    <enumerate object at 0x7f7f81efff30>
    第0个位置的元素是A
    第1个位置的元素是B
    第2个位置的元素是C
    第3个位置的元素是D
  • 相关阅读:
    用纯 javascript 提高博客访问量
    大龄程序员交流
    Git 本地仓库操作基本命令
    SoapUI登录测试(2)-- 断言
    SoapUI测试登录
    deleteMany is not a function
    jQuery contextMenu使用
    安装MongoDB -- Windows平台
    TortoiseGit 图标不显示
    C#的自定义滚动条
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12776572.html
Copyright © 2011-2022 走看看