字典的定义:
dictionary(字典)是除列表以外python之中最灵活的数据类型,字典同样可以用来存储多个数据;通常用于描述一个物体的相关信息
字典和列表的区别:
列表有序的对象集合,字典无序的对象集合,字典用大括号定义。
字典用键值对存储数据,键值对之间使用逗号分隔。
key是索引
值value是数据
键和值之间使用冒号分隔
键必须是唯一
可以取任何数据类型,但只能使用字符串数字元组

字典是一个无序的数据集合,使用print函数输出字典时通常输出的顺序和定义的顺序是不一致的

xiaoming = {"name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75,
            "weight": 75}
print(xiaoming)

输出结果

{'name': '小明', 'age': 18, 'gender': True, 'height': 1.75, 'weight': 75}

字典的基本使用

1.取值

xiaoming_dict = {"name": "小明"}
# 1.取值
print(xiaoming_dict["name"])

输出结果

小明

2.增加/修改

# 如果key存在,会新增键值对
xiaoming_dict["age"] = 18
# 如果key不存在,会修改已经存在的键值对
xiaoming_dict["name"] = "小小明"
print(xiaoming_dict)

输出结果

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

删除

xiaoming_dict.pop("name")
# 在删除指定键值对的时候,如果key不存在程序会报错
# xiaoming_dict.pop("name123")

输出结果

{'age': 18}
# KeyError: 'name123'

字典的其他操作

统计键值对的数量

xiaoming_dict = {"name": "小明",
            "age": 18}
# 1.统计键值对的数量
print(len(xiaoming_dict))

输出结果

2

合并字典

temp_dict = {"height": 1.75,
             "age": 20}
# 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)
print(xiaoming_dict)

输出结果

{'name': '小明', 'age': 20, 'height': 1.75}

清空字典

xiaoming_dict.clear()

输出结果

{}

字典的应用场景

使用多个键值对,存储描述一个物体的相关信息 – 描述更多复杂的数据信息,将多个字典放在一个列表中,再进行遍历

card_list = [
    {"name": "张三",
     "qq": "12345",
     "phone": "110"},
    {"name": "李四",
     "qq": "54321",
     "phone": "10086"}
]

for card_info in card_list:
    print(card_info)

输出结果

{'name': '张三', 'qq': '12345', 'phone': '110'}
{'name': '李四', 'qq': '54321', 'phone': '10086'}

字典的遍历

iaoming_dict = {"name": "小明",
                 "qq": 123456,
                 "phone": 10086}

# 迭代遍历字典
# 变量k是每一次循环中,获取到的键值对的key
for k in xiaoming_dict:
    print("%s - %s" % (k, xiaoming_dict[k]))

输出结果

name - 小明
qq - 123456
phone - 10086

字符串的定义

字符串就是一串字符,是编程语言中表示文本的数据类型,在python中可以使用一对双引号或者一对单引号定义一个字符串。
字符串的索引,可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始,也可以使用for循环遍历字符串中的每一个字符

字符串也可以根据索引取值

str1 = "hello python"
print(str1[6])

输出结果

p

字符串遍历

str2 = "我的外号是'大西瓜'"
print(str2)
for char in str2:
    print(char)

输出结果

我
的
外
号
是
'
大
西
瓜
'

字符串的统计操作

hello_str = "hello hello"

统计字符串的长度

print(len(hello_str))

输出结果

11

统计某一个小字符串出现的次数

print(hello_str.count("llo"))

输出结果

2

某一个子字符串出现的位置(取索引)

print(hello_str.index("llo"))
# 注意:如果使用index方法传递的子字符串不存在,程序会报错
# print(hello_str.index("zbc"))

输出结果

2
#    print(hello_str.index("zbc"))
#  ValueError: substring not found