PHP工程师学Python数据类型
一、背景
继上篇文章比较了PHP与Python语法之后,这周又学习了Python数据类型,准备从通过这篇文章给自己进行一些总结,也给其他读者一些参考。
二、内容概要
- 字符串(str)
- 列表(list)
- 元组(tup)
- 字典(dict)
- 数据操作
三、字符串(str)
Python中字符串操作基本和PHP类似,下面介绍一下Python中字符串的常规操作方法
3.1 索引下标取值
在PHP中可以通过索引下标的方式获取到字符串中的某一个字符,在Python中也同样可以获取到,如下代码所示
#定义字符串 testStr = 'tangqingsong' #通过索引下标获取字符 print(testStr[1]) #打印结果 a
3.2 切片
在Python中有一个非常好用的功能叫做切片,比如当你想获取字符串中第n个字符到第m个字符中的区间字符,使用Python的切片实现非常简单,如下代码所示
#定义字符串 testStr = 'tangqingsong' #通过索引下标获取字符 print(testStr[0:4]) #打印结果 tang
3.3 循环
在Python中for不仅仅可以循环类似于PHP中的数组,还可以循环字符串,如下代码所示
testStr = 'tangqingsong' for value in testStr[0:4]: print(value) #打印结果 tang
3.4 字母大小写转换
在Python中实现字母大小写转换和PHP的写法稍有不同,Python中操作有点类似于PHP操作对象的感觉,如下代码所示
#定义字符串 testStr = 'tQs' #大写转换 aStr = testStr.upper() #小写转换 bStr = testStr.lower() print(aStr,bStr) #打印结果 TQS tqs
3.4 分割和合并
接着我们再来看一下怎么把字符串切割与合并,如下代码所示
s = 'tang|qing|song' l = s.split('|') print(l) #打印结果 ['tang', 'qing', 'song'] s2 = '|'.join(['tang', 'qing', 'song']) print(s2) #打印结果 tang|qing|song
3.5 字符串首尾过滤
在PHP中字符串首尾过滤通常使用trim()
函数过滤,而Python中字符串首尾过滤的语法有点类似于PHP操作对象的方式,代码如下所示
# 去掉边界上的内容 strip s1 = ' tang qing song ' print(s1.strip()) #打印结果 ‘tang qing song’
如果你想指定删除某一个字符,代码如下所示
s2 = '<汤青松>' print(s2.strip('>')) #打印结果 '<汤青松'
四、列表(list)
在Python中有一种叫做list的数据类型,在PHP中我们通常称之为索引数组
4.1 数据定义
定义list数据方式如下代码所示
#定义一个list数据 lst = ['张三','李四','王五','马六','田七']
取数据方式和PHP基本一致,比如想获取lst里面的李四,可以这样获取
$name = lst[1]
4.2 切片
除了正向取数据还可以反着顺序取数据,比如你要获取马六,你可以这样写
$name = lst[-2]
在Python中有一种获取数据非常简便的方法,叫做切片,比如你想获取lst中的李四到马六区间的数据,在PHP中你得用array_slice
函数去截取,但在Python则非常方便,如下代码所示
print(lst[1:4]) # 打印结果 ['李四','王五','马六']
如果你想隔一个数据取一个数据,切片还支持设置步长,步长默认为1,也就是说连续取数据,当你设置步长后,会按照指定的步长,如下代码所示
print(lst[1:4:2]) # 打印结果 ['李四','马六']
同样切片也支持反着取数据,比如你想获取田七到王五区间的数据,参考代码如下
print(lst[-1:-3:-1]) # 打印结果 ['田七','马六','王五']
4.3 修改数据
在Python中如果你想向一个list数据中追加一个数据可以使用append方法向末尾增加,如下代码所示
lst = lst.append('王八')
也可以使用pop方法弹出最末尾一个数据,如下代码所示
value = lst.pop()
如果你想吧数据清空,也可以使用clear方法,当然你也可以直接将值重新赋值一个空list,如下代码所示
lst.clear() #或者 lst = []
4.4 值的引用
在Python中需要注意一种引用内存地址的特殊情况,如下代码所示
# 定义两个变量 aList = ['张三', '李四', '王五'] bList = [] # 在bList中追加aList,此时bList为二维list bList.append(aList) #修改aList变量里面的值 aList[0] = '张三丰' #打印bList print(bList) # 打印结果 [['张三丰', '李四', '王五']]
在上面代码中可以看到,已经将一个变量赋给另外一个变量,按照常规理解来说,他们是相互独立的,但实际上并不是;在Python中如果存在二维的list,一维里面往往是记录一个内存地址,并不是把值完整的复制一份,这种引用操作Python中也称之为浅拷贝;
五、元组(tup)
在Python中有一种数据类型和list非常相似,称之为元组(tuple);它们最明显区别就是list定义之后可以修改结构,而元组定义之后不能再次修改,其次是在定义的时候有一点点不同,如下代码所示
#定义list数据 lst = ['张三', '李四', '王五'] #定义元组数据 tple ('张三', '李四', '王五')
在取数据的时候同样支持切片,也同样支持用索引(下标)方式来取值,唯一的区别就是不能再更改里面的值,比如说追加数据或者里面的某一个数据重新赋值。
六、字典 (dict )
在PHP中我们知道数组有两种类型,索引数组和关联数组,而关联数组在Python中称之为字典,定义方式和lst区别不大,如下代码所示
6.1 数据定义
demo = { 'k1':'v1', 'k2':'v2', 'k3':'v3', }
在Python中定义字典相对PHP来说比较严格,对key有要求,不像PHP中可以只输入值而不输入可以,在Python中必须同时输入key和value。
6.2 增删改查
Python中的字典增删改查和PHP基本类似,获取字典数据参考代码如下所示
#明确存在某一个key可以这样取值,如果值不存在会报错 d['存在的key'] #不知道是否存在的情况 d.get('不知道存不存在的key')
增加数据的方式比较常规,这里不再特别说明,示例代码如下所示
#增加一项数据 data['不存在的key'] = '值'
删除数据的方式有两种形式,第一种是弹出指定数据,第二种是通过方法删除,和PHP基本类似,如下代码所示
#弹出数据 data.pop('key') #删除数据 del data['key']
修改数据直接赋值即可,如下代码所示
# 修改数据 data['存在的key'] = 新的值
七、杂项
在Python中对数据会经常处理,这里记录三个常用的操作方法;
7,1 range 函数
有时需要定义一个列表,里面包含1~100的所有数值,在PHP中可能需要通过for循环来实现,但在Python中有一个函数range()可以创建一个整数列表,一般用在 for 循环中,如下代码所示
#range(start, stop[, step]) for i in range(0,5,1): print(i) # 打印结果 0 1 2 3 4 5
start参数代表计数从 start 开始,stop是代表计数停止的数值,step则代表一次递增几个数值
7.2 布尔型说明
在Python中的布尔值中,数字 0为 False,其他数字都为true,字符串除了''是false以外,其他非空的字符串都是true,tuple类型中除()
和{}
是false,其他都是true,还有Python中表示空的none也是false
7.3 数据操作
在Python中如果你想判断一个列表是否包含某一个值可以使用in方式,如下代码所示
#定义一个列表 lst = ['tang','qing','song'] #判断lst是否包含某一个值 result = 'tang' in lst print(result) #打印结果 True
如果你想知道一个list中是否不包含可以使用not in方式,如下代码所示
#定义一个列表 lst = ['tang','qing','song'] #判断lst是否不包含某一个值 result2 = 'tang' not in lst print(result2) #打印结果 False
在Python中如果你想查看一个列表的长度,可以使用len(lstt)方法 查看列表的长度
lst = ['tang','qing','song'] print(len(lst)) #打印结果 3
作者:汤青松
微信:songboy8888
更新日期:2019-07-21
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python爬虫入门教程 62-100 30岁了,想找点文献提高自己,还被反爬了,Python搞起,反爬第2篇
学术搜索 学习理论的知识少不了去检索文献,好多文献为你的实操提供了合理的支撑,我所在的大学内网默认是有知网账户的,非常NICE 今天要完成的网站是 http://ac.scmor.com/ Google学术搜索是一个文献检索服务,目前主要是提供维普资讯、万方数据等几个学术文献资源库的检索服务。通过Google学术搜索只能够查找到这些学术资料的“报告、摘要及引用内容... 来源百度百科 我们的目标 获取现在访问的链接地址,当你使用谷歌浏览器的开发者工具抓取的时候,得到的是一个js加密函数 注意看上图2的位置,接下来,我们采用上篇博客的方式,去尝试获取visit函数的具体内容 我们要在所有的请求链接中去检索一个visit方法,注意步骤 双击方法名,进入 找到核心方法 function visit(url) { var newTab = wind
- 下一篇
玩转数据结构 java描述 一 概况
第一章 介绍,数据结构是计算机专业的同学必学的课程 数据结构研究的是数据如何在计算机进行组织和存储,使得我们可以高效的获取数据或者修改数据。 数据结构可以分为三种结构: 线性结构:数组;栈;队列;链表;哈希表 树结构:二叉树,二分搜索树,AVL,红黑树,Treap,Splay,堆,Trie,线段树,K-D树,并查集,哈夫曼树 图结构 邻接矩阵,邻接表 我们需要根据应用的不同,灵活选择最合适的数据结构, 例子: 1,数据库, 它已经封装好了,使用SQL语言就可以使用数据库, SELECT * FROM 慕课网 WHERE interest = "数据结构" 里面最重要的是使用树结构:AVL,红黑树,Treap,伸展树,B树, 还有很重要的哈希表 2,操作系统 涉及非常多的数据结构,1个例子,多任务切换,涉及: 系统栈,递归调用就需要系统栈 优先队列:堆。 有了优先队列,操作系统才可以快速在多个任务之间比较他们的优先级,实现任务的切换 3,文件压缩 不只是RAR,计算机中的PNG,MP3,PDF都是对不同的文件进行了一定的压缩处理, 最基础的压缩算法使用的是哈夫曼树, 哈夫曼树很简单,现在...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块