php 清空一个数组_PHP工程师学Python数据类型

5e8c0d17e277c32032661af39d9f2311.png

一、背景

继上篇文章比较了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 lstprint(result)
#打印结果  True

如果你想知道一个list中是否不包含可以使用not in方式,如下代码所示

#定义一个列表
lst = ['tang','qing','song']#判断lst是否不包含某一个值
result2 = 'tang' not in lstprint(result2)
#打印结果  False

在Python中如果你想查看一个列表的长度,可以使用len(lstt)方法 查看列表的长度

lst = ['tang','qing','song']print(len(lst))#打印结果  3

作者:汤青松

欢迎关注课程:

XSS跨站漏洞 加强Web安全

作者:idaxia

链接:http://www.imooc.com/article/289723

来源:慕课网

本文首次发布于慕课网 ,转载请注明出处,谢谢合作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“开源、共享、创新” 2020 中国.NET开发者大会小结

大会的新闻稿在2020年12月31日正式发布&#xff1a;开源共享创新|2020年中国.NET开发者大会圆满收官&#xff01; , 本文是这篇新闻的补充性文章&#xff0c;仅代表个人对大会的各方面分享内容的一个小结。在2019年上海中国.NET开发者大会的基础上&#xff0c;2020年12月19日 继…

maya的颤动怎么做_必看!新手学习MAYA的几个建议

“学习是没有捷径可言的&#xff0c;唯一的捷径就是不断的学习和练习&#xff0c;只有这样才能学到真功夫”Maya设计刚刚开始接触Maya的同学都会有这些疑问&#xff0c;我适不适合学习Maya&#xff0c;学习Maya可以赚到钱吗&#xff1f;怎样才可以学好Maya&#xff0c;今天给大…

我的2020年终总结:新的角色,新的开始

【年终总结】| 作者/Edison Zhou又到了一年一度的年终盘点时刻&#xff0c;熟悉我的朋友应该都知道&#xff0c;这个时候我都会写一篇推文盘点一下这一年来的得失。1也谈2020关键事件回顾&#xff08;1&#xff09;扯证了&#xff0c;结婚了要说2020年我个人的最大里程碑&#…

docker es持久化_使用docker数据卷对容器数据持久化

volume是用于对Docker容器生成和使用的数据持久化的首选机制。如果您的容器生成非持久状态数据&#xff0c;请考虑使用 tmpfs挂载以避免将数据永久存储在任何地方&#xff0c;并通过避免写入容器的可写层来提高容器的性能。默认容器的数据存储在这里我们在容器中创建一些模拟的…

求职信计算机工程师英语作文,开发工程师英文求职信范文

开发工程师英文求职信范文respected leaders:hello:first salute you sincere thanks, thank you for taking the time to consult the of my application letter!i am aptech a student, now already graduated from junior year. major in.net direction, and ismitted to be…

微信适配国产操作系统:原生支持 Linux

喜欢就关注我们吧&#xff01;据 ZOL 报道&#xff0c;统信软件官方近日宣布上线适配统信 UOS 的微信桌面客户端&#xff0c;并称该微信版本为原生支持 Linux 的版本&#xff0c;同时支持龙芯、鲲鹏、麒麟等国产 CPU。据悉&#xff0c;统信 UOS 版的微信桌面客户端由腾讯公司研…

ML.NET生成器带来了许多错误修复和增强功能以及新功能

ML.NET是一个开源的跨平台机器学习框架&#xff0c;适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中&#xff0c;而无需离开 .NET 生态系统&#xff0c;甚至拥有 ML 或数据科学背景。ML.NET工具&#xff08;Visual Studio 中的 UI 模型生成器和跨平台 ML.NET CLI&…

Flash 生命终止,HTML5能否完美替代?

Adobe 对 Flash Player 的支持计划在今天&#xff0c;也就是 2020 年 12 月 31 日终止。Windows 计算机上最新版本的 Flash Player 已经开始弹出生命周期终止提示窗口。提示中指出&#xff0c;为了保护用户系统&#xff0c;Adobe 将在 2021 年 1 月 12 日开始禁止 Flash 内容在…

typora公式zuo对齐_Markdown编辑神器-Typora

Markdown For Typora Overview Markdown is created by Daring Fireball, the original guideline is here. Its syntax, however, varies between different parsers or editors. Typora is using [GitHub Flavored Markdown][GFM]. 注:Markdown语法与知乎不能完全兼容,显示…

使用 ML.NET 识别乐高颜色块

每一个乐高迷都拥有很多的颜色块&#xff0c;需要进行排序和按类型分拣&#xff0c;按照《Organizing your LEGO Bricks》或许有所帮助&#xff0c;但这不是一个简单的任务&#xff0c;因为有很多颜色块有非常微妙的差异。如果换作一个典型的程序员可以做什么来解决这个问题呢&…

ccs加载out文件_类加载流程、类加载机制及自定义类加载器详解

原文&#xff1a;juejin.im/post/5cffa528e51d4556da53d091一、引言当程序使用某个类时&#xff0c;如果该类还未被加载到内存中&#xff0c;则JVM会通过加载、链接、初始化三个步骤对该类进行类加载。二、类的加载、链接、初始化1、加载类加载指的是将类的class文件读入内存&a…

unity中单位是米还是厘米_【一步数学】小学数学单位换算公式大全及专项训练...

重量单位换算1吨1000千克 1吨1000 000克吨&#xff1a;吨是重量单位&#xff0c;公制一吨等于1000公斤&#xff1a;计算船只容积的单位&#xff0c;一吨等于2.83立方米&#xff08;合100立方英尺&#xff09;。1千克1000克 500克1斤千克&#xff1a;克&#xff0c;(符号kg或㎏)…

二分法查找是基于有序_201,查找顺序查找

查找算法中顺序查找算是最简单的了&#xff0c;无论是有序的还是无序的都可以&#xff0c;也不需要排序&#xff0c;只需要一个个对比即可&#xff0c;但其实效率很低。我们来看下代码1public static int search1(int[] a, int key) {2 for (int i 0, length a.length; i …

河南大学计算机组成原理,河南大学计算机组成原理考点

河南大学计算机组成原理考点 (34页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;11.90 积分第&#xff11;章 计算机系统概论1、计算机硬件的五大部件&#xff1f;三大部分&#xff1f;运算器 存储器…

zipsys驱动签名工具_全球首发 300系列主板USB WIN7 64位驱动 SMXDIY

本版为改版驱动&#xff0c;仅供SMXDIY会员学习测试&#xff0c;禁止传播。众所周知&#xff0c;H310/B360/H370/Z390是没USB的WIN7驱动的。网上也找不到相关的资料&#xff0c;大家普遍默认没驱动&#xff0c;但这已经成为历史。我们这发布的是真的驱动&#xff0c;可以整合到…

excel筛选排序从小到大_excel表格怎么按字数的多少来排列!

excel表格怎么按字数的多少来排列为了更好的做好我们的语料编定及翻译工作&#xff0c;尤其是个别语料数量较多&#xff0c;最多可达2000条。我们可以将字数少的&#xff0c;意图明确的&#xff0c;不会有异议的&#xff0c;我们可以根据每句话的字数&#xff0c;用excel来进行…

计算机系统的工作方式,某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲 - 信管网...

第2题&#xff1a;实时操作系统(RTOS)内核与应用程序之间的接口称为( )。A&#xff0e;I&#xff0f;O接口B&#xff0e;PCIC&#xff0e;APID&#xff0e;GUI答案解析与讨论&#xff1a;www.cnitpm.com/st/2867029381.html第3题&#xff1a;嵌入式处理器是嵌入式系统的核心部…

怎么从转移特性曲线上看dibl_「科普向」这篇让你快速搞懂IGBT的静态特性

IGBT的静态特性其实并非难以理解的东西,即便是对于外行人而言。刚接触那会儿&#xff0c;看到转移特性、输出特性之类的就想溜之大吉&#xff0c;加之网上查询的资料一概笼统简单&#xff0c;只描述特性曲线所表示的关系结果&#xff0c;却并不解释曲线为何这里弯曲、那里平直&…

对CORS OPTIONS预检请求的一些思考

前后端分离模大势所趋&#xff0c;跨域问题更是老生常谈。《程序员应对浏览器同源策略的姿势》一文提到三种跨域请求方案&#xff0c;重点讲述了w3c和浏览器厂商推出的CORS规范。同源策略 所谓同源是指域名、协议、端口相同。不同源的浏览器脚本(javascript、ActionScript、ca…

强烈推荐:SiteServer CMS开源免费的企业级CMS系统!

说到CMS&#xff0c;大家都知道织梦、帝国CMS、HPCMS、动易等知名老牌的&#xff01;这些东西也可以拿来就用&#xff0c;上次看到一个个人开源的cms&#xff1a;MCMS。基于SpringBoot 2架构&#xff0c;前端基于vue、element ui。每月28定期更新版本&#xff0c;为开发者提供…