zoukankan      html  css  js  c++  java
  • 7、python基本数据类型之散列类型

    前言:python的基本数据类型可以分为三类:数值类型、序列类型、散列类型,本文主要介绍散列类型。

    一、散列类型


    散列类型:内部元素无序,不能通过下标取值

    1)字典(dict):用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对会替换前面的,value不需要唯一。

    2)集合(set):用 {} 花括号表示,存放一个个元素,可以是任意类型,但元素不允许重复。

    注意:

    d = {} 定义的是一个空字典

    s = set() 定义的是一个空集合

     

    二、字典dict


     1.定义

    1)用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对会替换前面的,value不需要唯一。

    2)value可以取任何数据类型,但key是不可变的,新增键值对后,key不可以修改,单value可以修改。

    2.字典的常用方法

    1)增

    • dic[key]=value 无则创建,若已有对应的key存在则修改该键值对的value
    • update():将一个字典的所有元素更新到另一个字典中 (简单来说,就是添加多个元素)
    # 字典 {key:value, key:value}   键/值对形式
    # key是唯一的,是不可变类型数据
    dic1 = {'name':'张三','age':18,'gender':''}
    dic2 = {'a':11,'b':22}
    
    dic1['city'] = '广州'   # 新增键值对
    print(dic1)
    
    dic1['city'] = '上海'   # 根据key修改值
    print(dic1)
    
    # updata():添加多个键值对(将一个字典更新到一个字典中)
    dic1.update(dic2)
    print(dic1)
    dic2.update({'c': 33, 'd': 44})
    print(dic2)

    2)删

    • pop():参数为字典的键(key)
    • popitem() :删除最后添加的键值对
    • clear():清空字典中的所有键值对
    • 关腱字del:del dic[key]
    dic1 = {'name':'张三','age':18,'gender':'','city':'广州'}
    
    # pop():删除,需要传入一个键(key)
    dic1.pop('gender')
    print(dic1)
    
    # popitem():不需要传参,删除字典中最后添加进来的一个键值对
    dic1.popitem()
    print(dic1)
    
    # 关键字del
    del dic1['age']
    print(dic1)
    
    # clear():清除字典中的所有键值对
    dic1.clear()
    print(dic1)

    运行结果:

    C:softwarepythonpython.exe D:/myworkspace/test/test/test.py
    {'name': '张三', 'age': 18, 'city': '广州'}
    {'name': '张三', 'age': 18}
    {'name': '张三'}
    {}
    
    Process finished with exit code 0

    3)改

    dic[key]=value  通过键去修改值,在第一点中已经举出例子

    4)查

    • get():获取键对应的值,但key不存在时不会报惜,会打印None
    • keys():获取所有的键,可以用list将结果转成列表
    • values():获取所有的值,可以用list将结果转换成列表
    • itmes(): 获取所有的键值对,可以用list将结果转换成列表,列表中每个键值对组成一个元组
    dic1 = {'name':'张三','age':18,'gender':''}
    
    # get():获取键对应的值
    print(dic1.get('name'))
    print('这是不存在的键值对:{}'.format(dic1.get('city')))
    
    # keys():返回字典中所有的键
    print(dic1.keys())
    
    dic_key = dic1.keys()
    print(list(dic_key))  # 通过list()把键以列表的形式输出
    
    # values():返回字典中所有的值
    print(dic1.values())
    dic_value = dic1.keys()
    print(list(dic_value))  # 通过list()把键以列表的形式输出
    
    # items:返回字典中所有的键值对,每一个键值对都会打包成元组(key,value)
    print(dic1.items())
    dic_item = dic1.items()
    print(list(dic_item))

    运行结果:

    C:softwarepythonpython.exe D:/myworkspace/test/test/test.py
    张三
    这是不存在的键值对:None
    dict_keys(['name', 'age', 'gender'])
    ['name', 'age', 'gender']
    dict_values(['张三', 18, ''])
    ['name', 'age', 'gender']
    dict_items([('name', '张三'), ('age', 18), ('gender', '')])
    [('name', '张三'), ('age', 18), ('gender', '')]
    
    Process finished with exit code 0

    三、集合set


     1.定义

    集合是由不重复元素组成的无序的集,常用来消除重复元素

    注意:要创建一个空集合只能用set(),不能用用{},因为后者创建的是一个空字典

    2.集合的常用方法

    集合的方法比较简单,常用增加元素add,删除元素pop()、remove()

    set1 = {1, 'python', 'a', 2, 'a', 3, 4, 'python', 5, 6}
    print(set1)  # 去掉重复的元素
    
    li = [79, 1, 89, 3, 90, 5, 89, 321, 66, 7]
    li = list(set(li))  # 利用set()转换成集合去重
    print(li)
    
    dic = {}  # 表示空字典, 空集合用set()
    set1 = set()
    print(type(dic), type(set1))    # type()是python内置函数,用于查看数据类型
    
    set1.add(1)
    set1.add(2)
    print(set1)
    set1.pop()
    print(set1)
    set1.remove(2)
    print(set1)

    运行结果:

    C:softwarepythonpython.exe D:/myworkspace/test/test/test.py
    {1, 2, 3, 4, 5, 6, 'python', 'a'}
    [1, 321, 3, 66, 5, 7, 79, 89, 90]
    <class 'dict'> <class 'set'>
    {1, 2}
    {2}
    set()
    
    Process finished with exit code 0
  • 相关阅读:
    [leetcode]N-Queens II
    基于Linux的智能家居的设计(4)
    eclipse集成Python开发环境
    创业三年,离开公司,请各位看一下我的简历,指点一下未来的路
    Jquery实现选项卡功能
    R语言中两个数组(或向量)的外积怎样计算
    《Java程序猿面试笔试宝典》之组合与继承有什么差别
    Sublime Text3打造U盘便携Lua IDE
    php Laravel 框架之建立后台目录
    树的同构(25 分)
  • 原文地址:https://www.cnblogs.com/miki-peng/p/12228726.html
Copyright © 2011-2022 走看看