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
PHP工程师学Python数据类型的更多相关文章
- 一起学Python——数据类型详解
和学习其他编程语言一样,首先要了解一门语言的数据类型. Python的数据类型有整型.浮点型.字符串.布尔型.日期时间类型.list列表.set集合.tuple元组.dict词典等. 1.整型 就是数 ...
- day2学python 数据类型+深浅拷贝+循环
数据类型+深浅拷贝+循环 别的语言的数组 python不用定义 直接使用 color=['红','橙','黄','绿','青','蓝','紫'] print(color[1:3]) //打印[1,3) ...
- 小白学 Python(2):基础数据类型(上)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...
- 小白学 Python(3):基础数据类型(下)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...
- 小白学 Python(16):基础数据类型(函数)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(17):基础数据类型(函数)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 从零开始学python
自从20世纪90年代初Python语言诞生至今,它已被广泛应用于系统管理任务的处理和Web编程.今天就来给大家看看学Python的五大优势吧! NO.1 全球三大主流编程语言之一 python是一种面 ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 学Python后到底能干什么?
Python是一种什么语言? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Jav ...
随机推荐
- 神奇的 SQL 之 CASE表达式,妙用多多 !
前言 历史考试选择题:黄花岗起义第一枪谁开的? A宋教仁 B孙中山 C黄兴 D徐锡麟,考生选C. 又看第二题:黄花岗起义第二枪谁开的? 考生傻了,就选了个B. 接着看第三题:黄花岗起义中,第三枪谁开的 ...
- JavaOOP 对象和封装
1.后缀:jsp---相当于html,但是它里面可以写java代码. 2.包名取名规则 a.网站域名倒着写 b.字母小写 3.类名取名规则 a.首字母大写 4.三目运算(适用简单的if-else) 条 ...
- hdoj 4706 Children's Day
题目意思就是用a-z组成一个N,然后到z后又跳回a,输出宽从3到10的N. #include <stdio.h> #include <string.h> char s[14][ ...
- 简洁明了的Noip考场策略 / 平时做题也适用
1.选择策略: 评估的标准得分的难度不是AC的难度 2.思考问题: 怀疑的眼光审视自己 3.写代码前: 想想可不可以换一种代码实现会好写很多 把自己的思路再理一遍,可以写到纸上,记下来大致关键顺序 4 ...
- 【PYTHON】语法基础 | 开始使用Python
Python的热度不言而喻,机器学习.数据分析的首选语言都是Python,想要学习Python的小伙伴也很多,我之前也没有认真用过Python,所以也想体验一下它的魅力,索性花了两天集中看了一下它的基 ...
- iText实现pdf导出
/** * AsianTest.java */ import java.io.FileOutputStream; import java.io.IOException; import com.lowa ...
- 洛谷 P3413 SAC#1 - 萌数
题意简述 求l~r之间存在长度至少为2的回文子串的正整数的个数 题解思路 数位DP 注意到有偶数长度的回文串必有长度为2的回文串,有奇数长度的回文串必有长度为3的回文串 所以只需判断与前一位,前两位是 ...
- 如何删除GIT仓库中的敏感信息
如何删除GIT仓库中的敏感信息 正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件,否则一旦泄漏到Github,这些非常敏感信息会影响客户的信息安全已经公司的信誉.公司可能其它还有相 ...
- spring cloud 断路器 Hystrix
一.微服务架构中使用断路器的原因 二.代码实现 1.在Ribbon中使用短路器 1.1.引入依赖 <dependency> <groupId>org.springframewo ...
- ggplot2 |legend参数设置,图形精雕细琢
本文首发于微信公众号“生信补给站”,https://mp.weixin.qq.com/s/A5nqo6qnlt_5kF3_GIrjIA 学习了ggplot2|详解八大基本绘图要素后,就可以根据自己的需 ...