7、python基本数据类型之散列类型

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

一、散列类型



内部元素无序,不能通过下标取值

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

   会替换前面的,value不需要唯一。

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

注意:

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

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

二、字典dict


1.定义

  用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对

会替换前面的,value不需要唯一。

  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:\software\python\python.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:\software\python\python.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:\software\python\python.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

作者:miki_peng

出处:https://www.cnblogs.com/miki-peng

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,请大家尊重原创,如要转载,请在文章页面明显位置注明出处,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/miki-peng/p/12228726.html

时间: 2024-11-10 14:15:58

7、python基本数据类型之散列类型的相关文章

Redis研究(四)—散列类型

散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型. 散列类型不能嵌套其他的数据类型.一个散列类型键可以包含至多2^32-1个字段. 一.介绍 散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值. 如果要关系数据中存储汽车对象: 数据是以二维表的形式存储的,这就要求所有的记录都有同样的属性,无法单独为某条记录增减属性.如果想要为ID为1的汽车增加生产日期属性,就需要把数据表更改

Redis散列类型

散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型.一个散列类型的键可以包含至多2^32-1个字段.除了散列类型,Redis的其他数据类型同样不支持数据类型嵌套.比如集合类型的每个元素都只能是字符串,不能是另一个集合或散列表等.散列类型适合存储对象:使用对象类别和对象ID构成键名,使用字段表示对象的属性,而字段值则存储属性值.例如要存储ID为2的汽车对象,可以分别使用名为colo

Redis 四:存储类型之散列类型

1.散列类型表达方式简介: =========================================== 键 字段 值 =========================================== 前轮 --->富士康 后轮 --->苹果 宝马: 挡风玻璃 --->加多宝 座椅 --->王老吉 方向盘 --->恒大冰泉 =========================================== 散列类型更好的作用于同一个对象,不同属性,对应不同

散列类型、运算符优先级和逻辑运算

散列类型一.集合  集合的相关操作     &  交集  取两个集合中的重复项     |    并集  两个集合去重组合     -   差集  A集合 - B集合 返回 B集合中没有的值  反之亦然   ^  将两个集合的重复项删除,将不重复项组合         增:             set.add(object)    添加一个object到集合中,此object必须为不可变对象,如提供可变对象将报TypeError错误             set.update(object

Redis数据类型之散列(hash)

1. 什么是散列 散列类似于一个字典,是一个<K, V>对的集合,不过这个key和value都只能是字符串类型的,不能嵌套,可以看做Java中的Map<String, String>. 2. 基本操作 赋值 散列操作不区分插入和更新,当设置一个field的时候如果不存在的话表示新增,如果已经存在的话则表示更新,之前的值会被覆盖掉.当设置值的时候如果field在之前不存在的话则返回1,视为新增,如果field已经存在的话,返回0,视为更新. hset <key> <

Python散列类型和运算符

集合定义 集合的交 并 差 常见的运算符的用法 字典的定义 字典的 get  items  keys  pop  popitem  update  方法 三种逻辑运算 集合 集合特性 唯一性:不存在两个相同的元素 无序性:不存在索引 可变性:set集合是可变对象 两种定义方法(具有唯一性,自动去重) 直接定义   用大括号 set()   类型转换 三种运算 s1 & s2  交集 s1 |  s2  并集 s1 - s2   差集(补集,前一个有的,后一个没有的) 集合方法 增 add(值)

5、python基本数据类型之数值类型

前言:python的基本数据类型可以分为三类:数值类型.序列类型.散列类型,本文主要介绍数值类型 一.数值类型 数值类型有四种: 1)整数(int):整数 2)浮点数(float):小数 3)布尔值(bool):只有两个值True和False 4)复数(complex):和数学中的复数一样由实部和虚部(j)组成(了解即可,学习自动化测试几乎用不到) 二.算数运算符 + 加,x+y - 减,x-y * 乘,两个数相乘或者返回一个被重复若干次的字符串 / 除,x/y % 取余 ,返回除法的余数 **

6、python基本数据类型之序列类型

前言:python的基本数据类型可以分为三类:数值类型.序列类型.散列类型,本文主要介绍序列类型及其通用操作 一.序列类型 1)字符串(str):用单引号('),双引号("),三引号(三单引号'''或三双引号""")来表示 2)列表(list):用[ ]中括号表示 3)元组(tuple):用()小括号表示 二.字符串str 1.定义 字符串定义:单引号.双引号.三引号.str() 引号都是成对出现 空字符串:s ='' (单引号对里没有任何数据) 空字符:s ='

Redis散列表类型

散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他的数据类型. 一个散列类型键可以包含至多2^32 -1个字段. 命令 赋值 HSET key field value > HSET car price 500 (integer) 1 > HSET car name BMW (integer) 1 HSET 命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时HSET命令返回0. 取值 HGET key