Python 高级变量之字典和字符串详解
1、字典的定义
dictionary
(字典)是出列表以外 python 之中 最灵活 的数据类型,字典统一可以用来 存储多个数据,通常用于存储 描述一个 物体 的相关信息;
字典和列表的区别:
- 列表 是 有序 的对象集合;
- 字典 是 无需 的对象集合;
- 字典用 { } 定义
字典使用 键值对 存储数据,键值对之间使用 , 分割;
键:key
,是索引;
值: value
, 是数据;
键 和 值 之间使用 ; 分割
键必须是唯一的;
值 可以取任何数据类型,但 键 只能使用 字符串、数字 或元组;
# 字典是一个无序的数据集合,使用print函数输出字典时,通常 # 输出的顺序和定义的顺序是不一致的! xiaoming = {"name":"小明", "age":18, "gender":true, "height":1.75, "weight":75.5} print(xiaoming)
字典的基本使用
xiaom_dict = {"name":"小明"} # 取值 #在取值的时候,如果指定的key不存在,程序会报错! print(xiaom_dict["name"]) # 增加/删除 # 如果 key 不存在,会新增键值对 xiaom_dict["age"] = 18 # 如果 key 存在,会修改意见存在的键值对 xiaom_dict["name"] = "小小明" # 删除 # 在删除指定键值得时候,如果指定的key不存在,程序会报错 xiaom_dict.pop("name") print(xiaom_dict)
xioaming_dict = {"name":"小明", "age":18} # 统计键值对数量 print(len(xioaming_dict)) # 合并字典 temp_dict = {"height":1.75, "age":20} # 注意 如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对 xioaming_dict.update(temp_dict) # 清空字典 xioaming_dict.clear() print(xioaming_dict)
2、循环遍历
遍历 就是 依次 从 字典 中获取所有键值对;
xiaoming_dict = {"name":"小明", "qq":"123456", "phone":"10086"} # 迭代遍历字典 # 变量k是每一次循环中,获取到的键值对的key for k in xiaoming_dict: print("%s - %s " % (k,xiaoming_dict[k]))
提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多。
# 使用 多个键值对,存储 描述一个 物体 的相关新 描述更复杂的数据信息 # 将 多个字典 放在一个列表中,再进行遍历 card_list = [ {"name":"张三", "qq":"123456", "phone":"110"}, {"name":"李四", "qq":"10086"}, ] for card_info in card_list: print(card_info)
3、字符串的定义
字符串 就是 一串字符,是编程语言中表示文本的数据类型:
虽然可以使用" 或者 ' 做字符串的转义,但是在实际开发中:
如果字符串内部需要使用 ' ,可以使用 " 定义字符串
可以使用 索引 获取一个字符串中 指定位置的字符,索引计数从0开始;
也可以使用 for 循环遍历 字符串中加一个字符。
大多数编程语言都是使用" 来定义字符串。
4、字符串的常用操作
在ipython3 中定义一个 字符串,例如:hello_str = “”
输入 hello_str. 按下 tab 键,ipython 会提示 字符串 能够使用的方法如下:
hello_str = "hello hello" # 统计字符串长度 print(len(hello_str)) # 统计某一个小字符串出现的次数 print(hello_str.count("llo")) print(hello_str.count('abc')) # 某一个字符串出现的位置 print(hello_str.index("llo")) # 注意:如果使用index 方法传递的字符串不存在 程序会报错! #print(hello_str.index("abc"))
字符串 查找和替换
hello_str = "hello world" # 判断是否以指定字符串开始 print(hello_str.startswith("hello")) # 判断是否以指定字符串结束 print(hello_str.endswith("world")) # 查找指定字符串 # index 同样可以查找指定的字符串在大字符串中的索引 print(hello_str.find("llo")) #index如果指定的字符串不存在,会报错 # find如果指定的字符串不存在,会返回-1 print(hello_str.find("abc")) # 替换字符串 # replace 方法执行完成之后,会返回一个新的字符串 # 注意:不会修改原有字符串的内容 print(hello_str.replace("world","python")) print(hello_str)
字符串 文本对齐演练
# 假设:以下内容是从网络上抓取得 # 要求:顺序并且居中对齐输出以下内容 poem = ["登喜鹊楼", "王之涣", "白日依山尽", "黄河入海流", "欲穷千里目", "更上一层楼"] for poem_str in poem: print("|%s|" % poem_str.center(10," "))
去除空白字符
# 假设:以下内容是从网络上抓取得 # 要求:顺序并且居中对齐输出以下内容 poem = ["\t\n登喜鹊楼", "王之涣", "白日依山尽\t\n", "黄河入海流", "欲穷千里目", "更上一层楼"] for poem_str in poem: # 先使用strip 方法去除字符串中的空白字符 # 再使用center 方法居中显示文本 print("|%s|" % poem_str.strip().center(10," "))
字符串拆分和连接
# 假设:以下内容是从网络上抓取得 # 要求:将字符串中的空白字符全部去掉 # 再使用“ ” 作为分割符,拼接成一个整齐的字符串 poem_str = ["登喜鹊楼\t", "王之涣\t", "白日依山尽\t\n", "黄河入海流\t\t", "欲穷千里目\t\t", "更上一层楼"] print(poem_str) # 拆分字符串 poem_list = poem_str.split() print(poem_list) # 合并字符串 result = " ".join(poem_list) print(result)
5、字符串的切片
切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串;
列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据;
字典 是一个 无序 的集合,是使用 键值对 保存数据;
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
上一篇: 记得我小时候
下一篇: win7注册表有哪些常用设置?