一、背景

继上篇文章比较了PHP与Python语法之后,这周又学习了Python数据类型,准备从通过这篇文章给自己进行一些总结,也给其他读者一些参考。

二、内容概要

  1. 字符串(str)
  2. 列表(list)
  3. 元组(tup)
  4. 字典(dict)
  5. 数据操作

三、字符串(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数据类型的更多相关文章

  1. 一起学Python——数据类型详解

    和学习其他编程语言一样,首先要了解一门语言的数据类型. Python的数据类型有整型.浮点型.字符串.布尔型.日期时间类型.list列表.set集合.tuple元组.dict词典等. 1.整型 就是数 ...

  2. day2学python 数据类型+深浅拷贝+循环

    数据类型+深浅拷贝+循环 别的语言的数组 python不用定义 直接使用 color=['红','橙','黄','绿','青','蓝','紫'] print(color[1:3]) //打印[1,3) ...

  3. 小白学 Python(2):基础数据类型(上)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...

  4. 小白学 Python(3):基础数据类型(下)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...

  5. 小白学 Python(16):基础数据类型(函数)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. 小白学 Python(17):基础数据类型(函数)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 从零开始学python

    自从20世纪90年代初Python语言诞生至今,它已被广泛应用于系统管理任务的处理和Web编程.今天就来给大家看看学Python的五大优势吧! NO.1 全球三大主流编程语言之一 python是一种面 ...

  8. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  9. 学Python后到底能干什么?

    Python是一种什么语言? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Jav ...

随机推荐

  1. 完美解决eclipse编辑器中文字符过小问题

    window – preferences – general – appearance – colors and fonts – basic – text font – edit 把弹出页面中“西欧语 ...

  2. Mac相关快捷键操作

    拷贝: shift + option + 拖动拖动至目的地 创建快捷方式: option + command + 拖动至目的地

  3. codeforces 576 div2 A-D题解

    A题 Description 题目链接: https://codeforces.com/contest/1199/problem/A 题意: 给定长度为n(1≤n≤100000)的一个序列a,以及两个 ...

  4. IO流与NIO流

    JAVA IO流最详解   (转自CSDN) IO流上:概述.字符流.缓冲区(java基础)   一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数 ...

  5. Intent 常用方法总结

    极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本文主要是总结Intent 常用的方法,并封装成Utils类中 主要涉及以下内容 ...

  6. 用HTML5的Audio标签做一个歌词同步的效果

    HTML5出来这么久了,但是关于它里面的audio标签也就用过那么一次,当然还仅仅只是把这个标签插入到了页面中.这次呢就刚好趁着帮朋友做几个页面,拿这个audio标签来练练手. 首先你需要向页面中插入 ...

  7. python第一课--基础知识

    python简介 Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的 ...

  8. h5微信浏览器复制粘贴--ios兼容问题的解决方法(clipboard.js插件)

    前段时间在做微信h5的时候,遇到了ios兼容,使用clipboard.js插件完美解决 下载地址:下载地址: https://github.com/zenorocha/clipboard.js cnd ...

  9. 重学计算机组成原理(十一)- 门电路的"千里传音"

    人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么? 为什么计算机里我们最终要选择二进制呢? 来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二 ...

  10. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十四)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...