python基本数据类型之字符串(五)

遍历与查找

python中的字符串属于可迭代对象,通过一些方法可以遍历字符串中的每一个字符。而查找的方法主要有两个:find与index。

1、字符串的遍历

字符串的遍历可以使用for循环。

s = 'goodhappynewyear'
li = []
for item in s:
li.append(item)
print(li)

打印结果:

['g', 'o', 'o', 'd', 'h', 'a', 'p', 'p', 'y', 'n', 'e', 'w', 'y', 'e', 'a', 'r']

既然字符串可以被遍历,那么它应该是有长度的。获取字符串长度可以使用内置方法len()。

v = len(s)
print(v)

打印结果:16

需要注意的是,python2与python3中的len()方法是不一样的。python2中的len()方法获取的是字符串的字节个数,而python3中len()方法获取的字符个数。

另一种遍历字符串的方法是利用索引。字符串中的每个字符都是可以通过索引进行访问的。例如:

print(s[0])
print(s[-1])

打印结果:g r

索引是从[0]开始的,默认最后一个字符的索引是[-1]。利用索引和range()方法,我们同样也可以遍历字符串。

s = 'hello'
for i in range(len(s)):
print('s[' + str(i) + ']=' + s[i], end='\t')

打印结果:

s[0]=h	s[1]=e	s[2]=l	s[3]=l	s[4]=o

range方法

range方法的作用生成一定范围内的序列,这是python中重要的内置方法之一。该方法有两个版本:

  1. range(stop):需要一个参数,指定数字范围的最大值;
  2. range(start,stop,step):start指定数字范围的最小值,stop指定数字范围的最小值,step指定步长。这个范围包含start,但不包括stop,包含在内的最大值为stop-1。

示例如下:

li = []
for i in range(10):
li.append(i)
print(li)

打印结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

另一个示例:

li = []
for i in range(3, 13, 2):
li.append(i)
print(li)

打印结果:

[3, 5, 7, 9, 11]

python2与python3中的range方法在利用内存的方式上存在着不同。python2中,range方法生成的数字序列会直接进入内存,也就是不需要遍历就可以打印出来;而python3中,range方法并不会直接将数字序列填充内存,而是需要遍历后才能进入内存。

python3中的示例:

print(range(15))
print([x for x in range(15)])

打印结果:

range(0, 15)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

python2中的xrange方法与python3中的range方法完全一样,也是需要遍历后才能进入内存。python3中没有xrange方法。

2、find、rfind、index、rindex

这三个方法都是用来查找字符串中的字符。

rfind\rindex与find\index基本的用法一致,只不过find和index是从左往右查找,而rfind和rindex是从右往左查找。

find和index方法都是3个参数(str, start, end),第一参数指定要查找的子串(必填),第二、第三个参数指定查找的开始与结束位置(默认从0到最后一个),(start,end)的设置与切片一致,即包含start而不包含end。

s = 'enfkejoeapjomdeep'
v = s.find('ee',6) # 当仅传入一个参数时,默认为指定start.
print(v)

打印结果:14

s = 'enfkejoeapjomdeep'
v1 = s.rindex('jo',3,12)
print(v1)

打印结果:10

不论是从左(find、index)还是从右(rfind、rindex)查找,结果都会返回找到的第一个子串的索引,而find与index的区别在于,如果要查找的子串不在字符串中,find方法会返回-1,而index方法则会报错。所以,在实际运用中,建议选择find方法。

python基本数据类型之字符串(五)的更多相关文章

  1. python基本数据类型之字符串(四)

    python基本数据类型之字符串(四) 判断方法 python中有一类用来判断字符串形式的方法,该类方法有两个特点:(1)方法名都是is开头(除了startswith和endswith):(2)返回值 ...

  2. python基本数据类型之字符串(三)

    python基本数据类型之字符串(三) 转换和判断方法 在python中,有一些内置方法可以将字符串转化特定形式,而与之对应的一些方法可以判断字符串是否符合某些形式.因此,在这篇文章中,笔者把转换方法 ...

  3. python基本数据类型之字符串(二)

    python基本数据类型之字符串(二) 替换方法 python中字符串的替换方法主要有:center.rjust\ljust.expandtabs.format\format_map(格式化).str ...

  4. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  5. python自学笔记(二)python基本数据类型之字符串处理

    一.数据类型的组成分3部分:身份.类型.值 身份:id方法来看它的唯一标识符,内存地址靠这个查看 类型:type方法查看 值:数据项 二.常用基本数据类型 int 整型 boolean 布尔型 str ...

  6. Python基本数据类型之字符串、数字、布尔

     一.数据类型种类 Python中基本数据类型主要有以下几类: Number(数字) String(字符串) Bool (布尔) List(列表) Tuple(元组) Sets(集合) Diction ...

  7. Python - 基本数据类型_str 字符串

    前言 字符串是编程中最重要的数据类型,也是最常见的 字符串的表示方式 单引号 ' ' 双引号 " " 多引号 """ ""&quo ...

  8. Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

    数据类型有整型.布尔.字符串.列表.字典.元组.集合.堆.栈和树. 1.整型: 整型就是数字 数字表示 python2 64位机器,范围-2^63~2^63-1 超出上述范围,python自动转化为l ...

  9. Python开发——数据类型【字符串】

    字符串定义 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 在Python中加了引号的字符,都被认为是字符串! 单引号.双引号.多引号之间的区别? 答案:单双引号没有区别 多引号的作用? ...

随机推荐

  1. 从神经网络到卷积神经网络(CNN)

    我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图中就多了许多传统神经网络没有的层次 ...

  2. npm镜像地址的修改或切换

    方法一:直接编辑npm的配置文件npm config edit修改registry的地址registry=https://registry.npm.taobao.org 方法二:用代码更改npm的配置 ...

  3. Ajax的异步与同步(async)

    1.async值为true (异步)当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说 ...

  4. Linux下Memcached安装与启用

    http://www.linuxidc.com/Linux/2016-07/133423.htm

  5. cookies的常见方式

    cookie有如下特点 保存在客户端,一般由浏览器负责存储在本地. 通常是加密存储的,不过由于存储在本地,很难保证数据不被非法访问,并不怎么安全,所以cookies中不宜保存敏感信息,如密码等. 哪些 ...

  6. 3.1链表----链表(Linked List)入门

    在分析链表之前,我们先来对之前的动态数组.栈.队列总结一下: (1)底层依托于静态数组 (2)依靠resize解决固定容量问题 (3)是一种假的的动态数据结构 1.什么是链表 可以从以下两个部分来理解 ...

  7. ORACLE日常操作手册

    转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语 ...

  8. 《面向对象程序设计(Java)》第四周学习总结

    第一部分 第四章部分理论知识 1.面向对象程序设计概述:java是完全面向对象的,必须熟悉OOP才能编写java程序. 类:由类构造对象的过程称为创建类的实例. 封装:封装是将数据和行为组合在一个包中 ...

  9. 编写Servlet 实例 -Shopping网站时,遇到的几个问题

    问题一.在Web 上运行时,用JDBC链接MySQL总是出错,一直出现驱动加载失败 ------提示java.lang.ClassNotFoundException.解决方案:将数据库驱动jar文件导 ...

  10. HTTP协议规定,客户端的编写

    HTTP协议是网络应用层协议,建立在TCP/IP协议基础上.HTTP协议基于客户/服务器模式,客户端主动发出HTTP请求,服务器接收HTTP请求,返回HTTP响应结果.HTTP协议对HTTP请求,以及 ...