目录
1.字典的定义
# 字典是一个无序的数据集合,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的!
xiaoming = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.75,
"weight": 75.5
}
print(xiaoming)
2.字典基本使用
xiaoming_dict = {"name": "小明"}
# 1.取值
xiaoming_dict["name"]
print(xiaoming_dict["name"])
# 在取值的时候,如果指定的key不存在,程序会报错!
# print(xiaoming_dict["name123"])
# 2.增加/修改 如果key不存在,会新增键值对;如果key存在,会修改已经存在的键值对
xiaoming_dict["age"] = 18
xiaoming_dict["name"] = "小小明"
# 3.删除
xiaoming_dict.pop("name")
# 在删除指定键值对的时候,如果指定的key不存在,程序会报错!
# xiaoming_dict.pop("name123")
print(xiaoming_dict)
3.字典的其他操作
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)
# 3.清空字典
xiaoming_dict.clear()
print(xiaoming_dict)
4.字典的遍历
xiaoming_dict = {"name": "小明", "qq": 11234567, "phone": "10086"}
# 迭代遍历字典
# 变量k 是每一次循环中,获取到的键值对的key
for k in xiaoming_dict:
print("%s - %s" % (k, xiaoming_dict[k]))
5.字典的应用场景
# 使用多个键值对,存储一个物体的相关信息 ——描述更复杂的数据信息
# 将多个字典放在一个列表中 再进行遍历
card_list = [
{"name": "张三", "qq": "12345", "phone": "110"},
{"name": "李四", "qq": "13434", "phone": "120"},
]
for card_info in card_list:
print(card_info)
6.字符串定义和遍历
str1 = "hello python"
str2 = '我得外号是"大西瓜"'
print(str1)
print(str2)
print(str1[6])
for c in str2:
print(c)
7.字符串统计操作
hello_str = "hello hello"
# 1.统计字符串长度
print(len(hello_str))
# 2.统计某一个小字符串出现的次数
print(hello_str.count("llo"))
print(hello_str.count("abc"))
# 3.某一个子字符串出现的位置
print(hello_str.index("llo"))
# 注意:如果使用index方法传递的子字符串不存在,程序会报错!
# print(hello_str.index("abc"))
8.字符串判断方法
# 1.判断空白字符
space_str = " \t\n\r"
print(space_str.isspace())
# 2.判断字符串中是否只包含数字
num_str = "(1)"
# 1》都不能判断小数
num_str = "1.1"
# 2》unicode 字符串
num_str = "\u00b2"
# 3》中文数字
# num_str = "一千零一"
print(num_str)
print(num_str.isdecimal())
print(num_str.isdigit())
print(num_str.isnumeric())
9.字符串的查找和替换
hello_str = "hello world"
# 1.判断是否以指定字符串开始
print(hello_str.startswith("Hello"))
# 2.判断是否以指定字符串结束
print(hello_str.endswith("world"))
# 3.查找指定字符串 index同样可以查找指定的字符串在大字符串中的索引
print(hello_str.find("llo"))
# index方法如果指定的字符串不存在,会报错; find方法如果指定的字符串不存在,会返回-1
print(hello_str.find("abc"))
# 4.替换字符串 replace方法执行完成之后,会返回一个新的字符串,注意:不会修改原有字符串的内容
print(hello_str.replace("world", "python"))
print(hello_str)
10.字符串文本对齐
# 要求:顺序并且居中对齐输出以下内容
poem = ["登鹳雀楼",
"王之涣 ",
"白日依山尽",
"黄河入海流",
"欲穷千里目",
"更上一层楼"]
for poem_str in poem:
# print("|%s|" % poem_str.ljust(10, " "))
# print("|%s|" % poem_str.rjust(10, " "))
# print("|%s|" % poem_str.center(10, " "))
# 先使用 strip方法去除字符串中的空白字符
# 再使用center方法居中显示文本
print("|%s|" % poem_str.strip().center(10, " "))
11.字符串拆分和拼接
# 假设:以下内容是从网络上抓取的
# 要求:
# 1.将字符串中的空白字符全部去掉
# 2.再使用" "作为分隔符,拼接成一个整齐的字符串
poem_str ="登鹳雀楼\t王之涣 \t 白日依山尽\t\n黄河入海流\t欲穷千里目\t\n更上一层楼"
print(poem_str)
# 1.拆分字符串
poem_list = poem_str.split()
# 2.合并字符串
print(poem_list)
poem_result = " ".join(poem_list)
print(poem_result)
12.for语法拼接
for num in [1,2,3]:
print(num)
if(num == 2):
break
else:
# 如果循环体内部使用break退出了循环 else下方的代码就不会执行
print("会执行吗?")
print("循环结束")
13.遍历字典的列表
students = [{
"name": "阿土"
}, {
"name": "小妹"
}, {
"name": "小张"
}
]
# 在学员列表中搜索指定的姓名
find_name = "张三"
for stu in students:
print(stu)
if stu["name"] == find_name:
print("找到了 %s" % find_name)
# 如果已经找到,应该直接退出循环,而不再遍历后续的元素
break
# else:
# print("抱歉没有找到 %s" % find_name)
else:
# 如果希望在搜索列表时,所有的字典检查之后,都没有发现需要搜索的目标,还希望得到一个统一的提示!
print("抱歉没有找到 %s" % find_name)
print("循环结束")