python基础语法 003-2 数据类型字典

1 字典

1.1 字典的表示

字典:也是存储多个数据的,存储多个数据,不记得第二个存储什么用字典,存储多个数据首推列表;

1.1.1 表示方法:

{'key' : 'value'},用逗号隔开

python 复制代码
#列表表示
my_songs = ['花海', '棉花糖', '起风了','一闪一闪亮晶晶', '青花瓷']
print(my_songs)

print(my_songs[3])#表示喜欢的歌
print(my_songs[4])#表示不喜欢的歌
#列表的缺陷:列表存储多个数据的时候,不知道元素具体表达的含义
#字典能够表示除每个元素具体的意思

#字典的表示方法 {key: value,key1:walue1, key2:walue2},key不能重复,重复后面的值会吧前面的覆盖
#my_songs = ['花海', '棉花糖', '起风了','一闪一闪亮晶晶', '青花瓷']
my_songs = {"favor":"花海", "hated":"棉花糖", "listen_night":"起风了"}


-----结果 -----------------
['花海', '棉花糖', '起风了', '一闪一闪亮晶晶', '青花瓷']
一闪一闪亮晶晶
青花瓷

1.1.2 key是唯一的且不可变的

key用来指定value的内存地址,同样的key会指定同样的地址,所以只能获取一个value

python 复制代码
#字典的key是有要求的,不能重复,c重复的前面会被后面覆盖
my_songs = {"favor":"花海", "favor":"棉花糖", "listen_night" : "起风了"}
print(my_songs["favor"])


----结果-----
棉花糖

1.1.3 key可以的类型

python 复制代码
#字典的key应该是能够hash哈希,不可变的,不能赋值,一般使用字符串,也可以是其他的不可变的类型
my_songs = {[1]:"花海", "favor":"棉花糖", "listen_night" : "起风了"}


--------结果 -----
raceback (most recent call last):
  File "F:\pythonProject1\字典.py", line 18, in <module>
    my_songs = {[1]:"花海", "favor":"棉花糖", "listen_night" : "起风了"}
TypeError: unhashable type: 'list'

1.2 字典操作

1.2.1 长度,len()

python 复制代码
my_songs = {"favor":"花海", "favor":"棉花糖", "listen_night" : "起风了"}
print(len(my_songs))

my_songs = {"favor":"花海", "hated":"棉花糖", "listen_night":"起风了"}
print(len(my_songs))

------结果 ----
2
3

1.2.2 索引和切片

和字符串不一样

python 复制代码
my_songs = {"favor":"花海", "hated":"棉花糖", "listen_night":"起风了"}
#字典的索引 KeyError
#字典是没有索引的同样是没有切片的,通过key来找值
#如果有索引,代表有顺序,列表是有序的,而字典是无序的
#字典在内存中储存是乱序的,随机存

print(my_songs)

print(my_songs[0])#KeyError


-----结果--------------
{'favor': '花海', 'hated': '棉花糖', 'listen_night': '起风了'}
Traceback (most recent call last):
  File "F:\pythonProject1\字典.py", line 30, in <module>
    print(my_songs[0])#KeyError
KeyError: 0

my_songs = {0:"花海", "hated":"棉花糖", "listen_night":"起风了"}
print(my_songs[0]) #这个可以

-----------结果----------------
花海





#indexError:索引超出范围
#ValueError:传入参数错误
#KeyError:字典的key有问题

1.3 可变类型,可以做增删改查

python 复制代码
my_songs = {"favor":"花海", "hated":"棉花糖", "listen_night":"起风了"}
p
#字典可不可以进行修改 =====》 字典时可变类型?
#只能根据key去操作
my_songs["favor"] = "可不可以"
print(my_songs)

#添加:如果key不在原来的字典当中,就是添加
#如果在,就是修改
my_songs["新的key"] = 'value'
print(my_songs)

#删除
my_songs.pop("favor")
print(my_songs)


----结果-----------------
{'favor': '可不可以', 'hated': '棉花糖', 'listen_night': '起风了'}
{'favor': '可不可以', 'hated': '棉花糖', 'listen_night': '起风了', '新的key': 'value'}
{'hated': '棉花糖', 'listen_night': '起风了', '新的key': 'value'}

1.4 字典函数操作

keys():获取所有key

values():获取所有value

items():获取key + value

python 复制代码
my_songs = {'hated': '棉花糖', 'listen_night': '起风了'}
print(my_songs.keys())
print(my_songs.values())
print(my_songs.items()) 



--------结果 -----
dict_keys(['hated', 'listen_night'])
dict_values(['棉花糖', '起风了'])
dict_items([('hated', '棉花糖'), ('listen_night', '起风了')])

1.5 什么时候用字典?什么时候用列表?

可读性强的用字典

需要顺序用列表

python 复制代码
"""
接口自动化测试:
测试用例
1:接口地址,请求方法,请求数据(参数)
数据1:/login,GET,yuez
数据2:/register,POST,kewang
数据3:/user,GET,123
有顺序的数据用列表,外层列表
可读性一一对应,用字典
"""

cases = [
   # [''/login'','GET','yuez'],
    {"url":"/login", "method":"get","date":"yuz"},
    '这是第二行数据',
    '这是第三行数据',
]

cases = [
    '这是第一行数据',
    '这是第二行数据',
    '这是第三行数据',
]

例子:将下列数据

t1 = ("aa", 11)

t2 = ("bb", 22)

t3 = [("cc", 11)]

变为字典格式

python 复制代码
t1 = ("aa", 11)
t2 = ("bb", 22)
t3 = [("cc", 11)]

new_dict = {}
new_dict[t1[0]] = t1[1]
new_dict[t2[0]] = t2[1]
new_dict[t3[0][0]] = t3[0][1]
print(new_dict)


---结果 ------------
{'aa': 11, 'bb': 22, 'cc': 11}
相关推荐
云和数据.ChenGuang2 分钟前
iptables 的NDAT报错bash: 9000: command not forward
开发语言·bash
爱炸薯条的小朋友19 分钟前
C#由窗体原子表溢出造成的软件闪退的问题解决方法
开发语言·c#·bug
是小李呀~23 分钟前
Java开发:文件上传和下载
java·开发语言
IT研究室29 分钟前
大数据毕业设计选题推荐-重庆旅游景点数据分析系统-Python-Hive-Hadoop-Spark
大数据·hive·hadoop·python·spark·毕业设计·课程设计
啧不应该啊30 分钟前
Python爬虫lxml模块安装导入和xpath基本语法
开发语言·爬虫·python
月伤5931 分钟前
在vue项目中禁用鼠标右键,选中
开发语言·javascript·计算机外设
勇敢牛牛@44 分钟前
视频格式转换:avi格式转mp4格式
python
熬夜学编程的小王44 分钟前
【C++篇】迈入新世界的大门——初识C++(上篇)
开发语言·c++
花生了什么树~.1 小时前
Python基础知识 (七)--匿名函数
开发语言·python
@技术无疆1 小时前
【Python】FeinCMS:轻量级且可扩展的Django内容管理系统
数据库·python·django·sqlite·pip·pygame·httpx