本节考虑的Python的一个中要的内置对象序列, 所谓的序列即一个有序对象的集合。这里的对象可以是数字、字符串等。根据功能的不同将序列分为字符串、列表、元组,本文将以下这几种对象做一些介绍。

一. 字符串

  字符串是一个非常常见的对象,我们平时在文本中编辑的对象都是字符串,例如‘你的名字,‘I love python!’等都是字符串,字符串的重要性不言而喻。

1.字符串的定义

  通常我们将需要编辑的字符串的字符串放在一个英文的单引号/英文双引号中,例如当我们在编辑器输入'I love python ! '的时候我们就创建了一个字符串对象,此时的字符串还没有变量来接受,所以我们需要用一个变量名来接受该字符串。例如 s1 = 'I love python ! ', 这就是创建一个字符串的完整格式,即 变量名 = ‘’字符串对象’,这里需要注意的是英文单引号。

2.字符串的相关运算

>>>s1 = 'I love python ! '

>>>s1 = 'Hello 2018 ! '

合并:+ , 字符串的加法表示字符串的合并

>>> s1+s2
'I love python !Hello 2018 !'

重复: *, 乘法表示字符串的重复

>>> s1*3
'I love python !I love python !I love python !'

索引:s1[index] 正数表示从第一个位置0开始索引,负数表示从倒数第一个开始 。注意空格也是一个字符串

>>> s1[0]
'I'
>>> s1[-1]
'!'
>>> s1[1]
' '

s.find(object):查找元素位置,默认返回元素第一次出现的位置,可添加查找范围,若没有返回-1

s.index(value, [start, [stop]])默认返回元素第一次出现的位置,可添加查找范围,如不存在则会报错。

s[i:j] : 切片,截取字符串的某一部分,i为截取开始段,j为截取结束段。注意包含开始不包含结束( 左闭右开)

>>> s1[2:7]
'love '

len(s): 判断长度, 返回字符串的长度

s.count('a'): 返回s中a的个数,若没有返回0

s.endswith('hk'): 是否以...结尾,返回True /False
s.startswith('a'):是否以...开始,返回True /False

s.replace('old','new'): 替换,需要特别注意的是替换并没有改变字符串的值,而是开辟了新的一个字符串对象,若需要用新的字符串对象字需要为它赋一个新的变量名

>>> s1.replace('love','hate')
'I hate python !'
>>> s1
'I love python !'

s.isalpha(): 判断是否全是字母/汉字
s.isdigit():判断是否全是数字,只能判断正整数
s.islower():判断是否全是小写
s.isupper():判断是否全是大写

s.lower(): 转换为小写
s.upper(): 转换为大写 #另外开辟一个地址需要一个新的地址接受,s本身没有变

>>> s1.upper()
'I LOVE PYTHON !'
>>> s1
'I love python !'

s.split(): 分割,默认以空格分割,也可以自定义分割位置,分割之后转化为列表。字符串自身没有不改变。

>>> s1.split()
['I', 'love', 'python', '!']
>>> s1.split('love')
['I ', ' python !']
>>> s1
'I love python !'

只对经常用到的操作做以介绍,在介绍中特别强调了,字符串自身没有发生改变,这一点是非常重要的字符串一旦定义就不会发生改变,若要利用操作之后新的字符串一定一定要将其赋给一个新的变量名

二. 列表

  列表Python中比较灵活的是有序对象的集合,以字符串不同的是,列表可以包含任何对象:数字,字符串,甚至其他列表。同样,与字符串不同的是列表都是可变对象,他们支持在原处修改。下面对列表进行描述:

列表是:

  任意对象的有序集合

  通过偏序读取

  可改变长度、异构以及任意嵌套

  可改变序列分类

1.定义

  L = ['Hello','world','!']     列表的定义是放在英文[]中括号内的,可嵌套如 L = ['Hello','world','!',['I','love','Python','!']]

2. 列表的运算

L = ['Hello','world','!']

L1 = ['Hello','world','!',['I','love','Python','!']]

L[i],L[i][j]: 索引

>>> L1[2]
'!'
>>> L1[3]
['I', 'love', 'Python', '!']
>>> L1[3][1]
'love'

L[i:j]: 切片,左闭右开

len(L):

+:合并

*: 重复

添加:

L.append(object):在末尾添加对象,一次只能添加一个对象,若对象为一个列表时将该列表视为一个对象
L.extend(object):在末尾添加对象,一次可以添加多个对象,这是append()函数与insert()函数的主要区别
L.insert(index,object):在固定的位置添加对象,index表示添加对象的位置,一次只能添加一个对象。注意添加对象后面的
对象的索引都发生了变化。 删除:

L.pop() 默认删除最后一个元素
L.remove(value) -> None 指定删除

L.clear() -> None -- remove all items from L:将列表清空
L.copy() -> list -- a shallow copy of L: 复制,注意复制后不是同一个对象,内存地址改变。copy()是复制函数,复制之后变为两个相同的对象,他们相同但不是同一个        对象

>>> L2 = L.copy()
>>> L2
['Hello', 'world', '!']
>>> L2 == L
True
>>> L2 is L
False
>>> id(L)
59761048
>>> id(L2)
59761128

L.reverse():  将列表反转

L.sort(): 排序,排序是一个语言中非常重要的一部分,以后会对sort()函数做一个深入的介绍,这里简单介绍一些用法。

>>> L
['Hello', 'world', '!']
>>> L.sort()
>>> L
['!', 'Hello', 'world']
>>> L.sort(key = len, reverse = True)
>>> L
['Hello', 'world', '!']

字符串转化为列表:s.split(), list(s)

>>> s1 = 'China is a great country'
>>> L = s1.split()
>>> L
['China', 'is', 'a', 'great', 'country']
>>> L1 = list(s1)
>>> L1
['C', 'h', 'i', 'n', 'a', ' ', 'i', 's', ' ', 'a', ' ', 'g', 'r', 'e', 'a', 't', ' ', 'c', 'o', 'u', 'n', 't', 'r', 'y']

列表的基本操作目前就介绍这些,进一步的操作将在以后的学习中介绍。   ***注意列表是可变的***

三. 元组

  元组有简单对象构成,元组与列表非常相似,只不过元组不能在远处修改(它们是不可变的),构成使用圆括号,元组具有列表的大多数属性。

元组是:

  任意对象的有序集合

  通过偏序读取

  属于不可变序列类型

  固定长度、异构任意嵌套

1. 元组的定义

  元组的定义方式有两种如下

>>> T =1,2,3
>>> T
(1, 2, 3)
>>> T=(1,2,3)
>>> T
(1, 2, 3)

2. 元组的操纵

  元组的基本操作与列表一样,这里不多做介绍

问题: 为什么有了列表还要元组?

  元组的不可变性提供了某种完整性,可以确保在程序中不会被修改,而列表没有这样的性质。元组的角色类似于‘常量声明’, 一旦定义无法改变,而列表不具备这样的性质。实际中应该按需应用。

Python基础__Python序列基本类型及其操作(1)的更多相关文章

  1. python基础之序列类型的方法——字符串方法

    python基础之序列类型的方法--字符串方法 Hello大家好,我是python学习者小杨同学,经过一段时间的沉淀(其实是偷懒不想更新),我终于想起了自己的博客账号,所以这次带来的是序列方法的后半部 ...

  2. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...

  3. Python基础:序列(字符串)

    一.概述 字符串 类似于C中的字符数组(功能上更像C++中的string),它是由一个个 字符 组成的序列.与C/C++不同的是,Python中没有 字符 这个类型,而是用 长度为1的字符串 来表示字 ...

  4. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  5. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  6. Python基础--通用序列操作

    Python 继续 Python包含6种内建的序列,各自是:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.我们将逐步进行介绍. 今天主要介绍一下通用序列操作.放之四海而 ...

  7. python基础之序列类型的方法——列表&元组

    Hello大家好,我是python学习者小杨同学,上次跟大家分享关于python的数值类型和序列类型,本次就承接上一节的内容,说一说序列类型的方法. 序列类型的方法,简单的来说就是四个字:增删改查.随 ...

  8. python基础知识01-数据类型和序列类型

    %,取余 //,取整,向下取整,5//2 = 2. 一.变量类型 1.变量名不能以数字开头,不能纯数字,不要用汉字,可以用下划线开头 2.数值类型(int,float,bool,complex) ​ ...

  9. python基础知识5---数据类型、字符编码、文件处理

    阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业   一 引子 1 什么是数据? x=10,10 ...

随机推荐

  1. 小笔记:Timer定时间隔时间操作

    小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...

  2. asp.net Global.asax 不运行解决

    asp.net application的站点发布后 Global.asax 未运行,搞了好久终于解决, 解决方法如下: publish设置 该设置经测试在win server 2003 和2008 都 ...

  3. 阿里云pai项目使用说明

    PAI项目创建方法 购买region 进入MaxCompute,购买相应region,目前机器学习只支持华东2(GPU公测免费)以及华北2(GPU计划收费),注意选择"按量后付费" ...

  4. 借助Maven入手Spring Boot第一个程序

    目前网上有不少Spring Boot的入门文章,都很有帮助,本人最近在深入学习Spring Cloud,在搭建第一个Hello World程序时,感觉对于新手而言,介绍文章怎么详细都不为过,因为其中坑 ...

  5. HDU - 3533 bfs [kuangbin带你飞]专题二

    看了好久的样例才看懂. 题意:有一个人要从(0,0)走到(n,m),图中有k个碉堡,每个碉堡可以向某个固定的方向每隔t秒放一次炮,炮弹不能穿越另一个碉堡,会被阻挡.人在移动的过程中不会被炮弹打到,也就 ...

  6. asp.net动态网站repeater控件使用及分页操作介绍

    asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...

  7. 电脑中dll文件丢失怎么恢复?

    DLL文件是Windows系统中的动态链接文件,我们在运行程序时都必须链接到dll文件,如果缺少了则无法正常运行,相信大家都会遇到dll文件缺失的情况,那么电脑中dll文件丢失怎么恢复?下面装机之家分 ...

  8. mysql数据库基本使用(增删改查)

    数据库db,database 数据库:依照某种数据模型进行组织并存放到存储器的数据集合dbms,database management system 数据库管理系统:用来操作和管理数据库的大型服务软件 ...

  9. html input密码显示为*号

    <!DOCTYPE html> <html encoding="utf-8"> <head> <style> *{margin:0; ...

  10. 项目使用EntityFramework需要做的几项工作

    1..新项目引用创建好的其他项目,比如实体类库.数据库业务.实体数据模型等需要用到的项目进行引用. 2.新项目使用NuGet获取AutoMapper和EntityFramework程序包进行安装引用, ...