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)]
变为字典格式
pythont1 = ("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}