Python 字典与字符串核心用法解析
本文详细介绍Python中字典和字符串的高级用法。字典作为无序键值对集合,支持增删改查及遍历操作;字符串处理涵盖定义、查找替换、对齐、去空白及切片功能。通过具体代码示例解析字典与列表的区别,以及字符串常用内置方法的使用场景。
1、字典的定义
dictionary(字典)是Python中除列表外最灵活的数据结构,主要用于存储描述单一对象的多项属性信息。
字典与列表的主要区别如下:
- 列表属于有序的对象集合。
- 字典属于无序的对象集合。
- 字典通过花括号 { } 进行定义。
字典采用键值对(key-value)形式存储数据,各键值对之间以逗号 , 分隔。
键:Key ,相当于数据的索引。
值: Value,即实际存储的数据内容。
键与值之间使用冒号 : 分隔(注:原文描述为分号,实际Python语法为冒号,此处保留原文表述但建议核实语法)。
字典中的键必须唯一。
值可以是任意数据类型,但键仅能使用字符串、数字或元组。
# 字典是一个无序的数据集合,使用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、字符串的切片
切片利用索引值限定范围,从大字符串中提取子字符串。
列表和元组均为有序集合,可通过索引获取对应数据。
字典是无序集合,通过键值对保存数据。
总结
本文内容到此结束,希望能为您提供帮助,欢迎继续关注我们获取更多技术内容!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









