Python 高级变量之字典和字符串详解
作者:钢铁男儿 发布时间:2021-11-16 19:36:35
目录
1、字典的定义
字典和列表的区别:
字典的基本使用
2、循环遍历
3、字符串的定义
4、字符串的常用操作
字符串 查找和替换
字符串 文本对齐演练
去除空白字符
字符串拆分和连接
5、字符串的切片
总结
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、字符串的切片
切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串;
列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据;
字典 是一个 无序 的集合,是使用 键值对 保存数据;
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://blog.csdn.net/weixin_42291376/article/details/121684607


猜你喜欢
- Python 多进程和数据传递的理解python不仅线程用的是系统原生线程,进程也是用的原生进程进程的用法和线程大同小异import mul
- 我就废话不多说了,直接上代码吧!import cv2import osdef save_img(): video_path =
- 1.Vue指令Vue提供自定义实现指令的功能, 和组件类似,可以是全局指令和局部指令,详细可以参见vue官网自定义指令一节(https://
- JMeter可以通过os命令调用Python脚本,Python同样可以通过系统命令调用JMeter执行压测Python调用JMeter首先要
- 前言当多线程访问同一个公共资源时,如果涉及到修改该公共资源的操作就可能会出现由于数据不同步导致的线程安全问题。一般情况下我们可以通过给公共资
- 本文实例为大家分享了python感知机实现的具体代码,供大家参考,具体内容如下一、实现例子李航《统计学方法》p29 例2.1正例:x1=(3
- 作为一个.net后台开发的程序猿,博客里既然大多都是前端相关的博文。是不是该考虑换方向了,转前端开发得了 ...小小吐槽一下,近期受该不该跳
- 程序没有改动过运行一直正常,突然有一天同事告知出现错误了。经过检查发现传递的数据中出现了#等特殊字符,浏览器只取到#号前面的数据,后面的被截
- 背景开始讨论弱引用( weakref )之前,我们先来看看什么是弱引用?它到底有什么作用?假设我们有一个多线程程序,并发
- 本文介绍了Python 堆叠柱状图绘制方法,分享给大家,具体如下:'''''''
- 本文实例讲述了Java开发之Spring连接数据库方法。分享给大家供大家参考,具体如下:接口:package cn.com.service;
- 前言HTML 5如同一场革命,正在Web2.0后时代轰轰烈烈的进行着。HTML 5是什么,无须我在这里赘述了。对于HTML 5的革新,按我的
- 想大家都做过遮罩层这种常见的功能,css或jquery实现,实现方式多样化,这里http://我介绍我在项目中实现的方式,全屏遮罩,部分区域
- # coding:utf-8import urllibimport urllib2import cookielibfrom bs4 impo
- 按行读取TXT文件 fname = './新建文件夹/yob2010.txt' //文件夹路径with open
- 如果您的网站面向世界各地的冲浪者或者对外开展商贸活动,检测来访者的浏览器语言类型就非常现实了。这里提供的脚本可以检测流露;浏览器
- 一、php事务处理概述:事务:是若干事件的集合事务处理:当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执
- 前言在使用vue过程中,总会用到这样哪样的UI框架,在install这些框架时,往往还需要安装其要求的依赖,或是相关的编译环境,下面将记录描
- 引入我们在使用mysql数据库时,习惯使用int型作为主键,并设置为自增,这既能够保证唯一,使用起来又很方便,但int型的长度是有限的,如果
- 今天试了一下用zipfile模块读取有密码的zip压缩文件。今天用winrar 5.6将一个名字为1.xlsx的excel文件打包成1.zi