1.定义                                                                                              

  1.数据结构:通过某种方式组织在一起的数据元素的集合。这些数据元素可以说数字或者字符,甚至可以是其他数据结构。在python中,最基本的数据结构是序列。

   2.索引:序列中的每个元素被分配一个序号。注意索引默认从0开始。

  在python中,内建了6中序列:列表、元组、字符串、unicode字符串、buffer对象、xrange对象。

2.通用序列操作

  所有序列都可以进行某些特定的操作:索引、分片、加、乘、检查某个元素是否属于序列的成员(成员资格)、内建函数(长度、最小值、最大值)。在这里还有一个重要的操作未提及-----迭代,指依次对序列中的每个元素重复执行某些操作,后续会详细分析,这里就不做过多的说明。

2.1索引      

  序列中所有元素都是有编号的----从0开始,可以通过编号进行访问。通过情况下,索引值为正数,但是python中也可以为负数,代表从右开始计数。若为负数时,开头第一位数为-1,而不是0,这样避免了与从左开始的第一个元素重合。

 __author__ = 'zcy'

 greeting='Hello'

 print(greeting[0]);

 print(greeting[-1]);

2.2分片

  分片,个人理解通过指定左右两个数字来,获取其中间对应的值。分片通过冒号隔开两个索引来实现,相当于是索引的升级版。提取时,包含左边的索引,而不包含右边的索引。注意若从左开始,索引也是从0 开始,从右边时,从-1开始。

  在分片中,只要最左边的索引比它右边的晚出现在序列中,结果就是一个空序列。如果分片所得的包含末尾的元素,那么只需置空最后一个索引。

 numbers=[1,2,3,4,5,6,7,8,9,10]
print(numbers[3:6])
print(numbers[0:1])
print(numbers[-5:-1])
print(numbers[-11:0])
print(numbers[-3:])
print(numbers[:3])
print(numbers[:])

  分片的开始和结束都需要指定,而在分片中存在另外一个参数---步长,通常是隐式设置的,默认为1.在分片中我们也可以设置步长,按照设置的步长来遍历序列中的元素。

 numbers=[1,2,3,4,5,6,7,8,9,10]
print(numbers[0:10:1])
print(numbers[0:10:2])
print(numbers[::4])
print(numbers[8:3:-1])
print(numbers[10:0:-2])
print(numbers[0:10:-2])
print(numbers[::-2])

  开始点的元素包括在结果之中,而结束点的元素则不在分片之内。

  当使用一个负数作为步长时,必须让开始点大于结束点。对于一个正数步长,会从序列的头开始向右提取元素,而对于负步长,则是从序列尾部开始向左提取元素。  

2.3序列相加

  使用加运算符可以进行序列的连接操作

 number=[1,2,3]+[4,5,6]
print(number) number1='Hello, '+'world!'
print(number1) number2=[1,2,3]+'world!'
print(number2)

  正如上面截图,若为同意类型时,可以进行连接,否则无法连接,抛出异常。

2.4乘法  

  用序列乘以某个数字,会得到一个新的序列,而在新的序列中,原来序列将被重复乘以这个数。

 print('python,'*5)

 print([2]*10)

 print([None]*10)

2.5成员资格  

  成员资格即检查当前元素是否在当前序列中。若存在,返回true,否则返回false。

str='python'
print('p' in str)
print('a' in str)

2.6长度、最小值和最大值                                                                                                 

  长度:len;最小:min;最大:max

 numbers=[100,20,300]
print(len(numbers))
print(max(numbers))
print(min(numbers))

2.列表:Python的‘苦力’                                                                    

  列表使用于序列的标准操作,是可以修改的。下面通过代码来看一下列表所拥有的特性。

 # 元素复制
number=[1,2,3,4,5,6]
print(number)
number[1]=5
print('元素复制:',number) # 删除元素
del number[1]
print('删除元素:',number) # 分片赋值
number=[1,5]
number[1:1]=[2,3,4]
print('分片赋值:',number) # 追加对象 append
number.append(10)
print('append:',number) # 元素在列表中出现的次数 count
print('count:',number.count(1)) # 将一个列表添加到另一个列表中 extend
a=[1,2]
b=[3,4]
a.extend(b)
print('extend:',a) # 找出摸个元素的索引 index
name=['a','a','c','d','e','f']
print('index:',name.index('a'))
print('index:',name.index('g')) # 将对象插入到列表中 insert
number=[1,2]
number.insert(1,'aa')
print('insert:',number) # 移除列表中的一个元素,默认为最后一个
print('pop:',number.pop()) # 移除列表中某个值的第一个匹配项
x=['a','b','c']
print('remove:',x.remove('a')) # 将列表中元素反向存放 reverse
x=[1,2,3]
x.reverse()
print('reverse:',x) # 列表中元素排序 sort
x.sort()
print('sort:',x) 返回结果:
[1, 2, 3, 4, 5, 6]
元素复制: [1, 5, 3, 4, 5, 6]
删除元素: [1, 3, 4, 5, 6]
分片赋值: [1, 2, 3, 4, 5]
append: [1, 2, 3, 4, 5, 10]
count: 1
extend: [1, 2, 3, 4]
index: 0
File "H:/PythonProject/PythonBasics/bolg.py", line 8, in <module>
print('index:',name.index('g'))
ValueError: 'g' is not in list
insert: [1, 'aa', 2]
pop: 2
remove: None
reverse: [3, 2, 1]
sort: [1, 2, 3]

  append方法,在列表末尾追加新的元素;而inset方法,在列表指定位置新增新的元素

  extend与‘+’区别在于,extend方法返回一个修改的列表,而原始的连接操作,则是返回一个全新的列表

  pop方法是唯一一个即能修改列表又能返回元素的列表方法

3.元组:不可变序列

  元组也是属于序列的一种,但是元组恰恰和列表相反,元组是不可变的,即定义之后,不能再改变元素。创建元组使用小括号,也可以不用,为了美观和便于识别,还是通常会加小括号。在元组中,若不使用括号,即使只有一个元素,也需要加括号,否则视为普通的数字或字符。例如:1,2,3;(1,2,3);42,;(42,)

  tuple,可以将一个序列作为参数转换为元组

  

 print(1,2,3)
print((1,2,3))
print(42,)
print((42,)) number=[1,2,3]
print(number)
print(tuple(number))

4.字符串

  字符串也是属于序列的一种,所有它也拥有序列的一些基本特性。字符串是不可变的,因为分片复制都是不合法的。

    通常格式化字符串使用‘%s’。%s称为转换说明符,标记了需要插入转换值的位置。若需要在字符串中包括百分号,则必须使用%%。

 format='Hello,%s.%s enough for ya?'
values=('world','Hot')
print(format % values) 结果:
Hello,world.Hot enough for ya?

   1.%字符:标记转换说明符的开始

   2.转换标志(可选):如s

   3.最小字段宽度(可选):转换后的字符串至少应该具有指定的宽度,如果是*,则宽度会从值元组中读出

   4.点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。

   5.转换类型:

字符串格式化转换类型
转换类型 含义
d、i   带符号的十进制正数
o 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制(小写)
X 不带符号的十六进制(大写)
e 科学计算法表示的浮点数(小写)
E 科学计算法表示的浮点数(大写)
f、F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况与f形同
G 如果指数大于-4或者小于精度值则和E相同,其他情况与F形同
C 单字符(接受正数或者单字符字符串)
r 字符串(使用repr转换人员python对象)
s 字符串(使用str转换人员python对象)
 from  math import pi

 print('Price of eggs: $%d' % 42)
print('Jexadecimal price of eggs:%x'% 42)
print('%10f' % pi)
print('%10.2f' % pi)
print('%.5s' % 'Fuido van Rossum')
print('%010.2f' % pi) 结果:
Price of eggs: $42
Jexadecimal price of eggs:2a
3.141593
3.14
Fuido
0000003.14

  字符串有很多列表的方法,同时也有特有的方法:

    1.find:在一个字符串中,查找某个字符串,然后其左边的索引,若不存在,返回-1

    2.join:将列表的元素通过某个字符串连接

    3.lower:返回字符串的小写字字母版

    4.replace:返回某个字符串的所有匹配项均被替换之后得到的字符串

    5.split:通过特殊的字符拆分当前字符串,若不提供,默认吧空格做份分隔符

    6.strip:返回去除两侧空格的字符串

    7.tanslate:替换字符串中的某些部分,优势在于可以同时进行多行替换。

5.写在最后

  由于最近时间原因,白天需要忙工作上的事情,偶尔下班回家还需要处理自己的事情,可能更新较为缓慢。写博客的时间,大多是下班之后,自己边查阅书籍和自己的印象来写的,主要是为了加深自己的记忆以及自己动手能力,存在错误的地方,大家多多交流。如果对你有一定的帮助,麻烦点个

Python基础系列----序列(列表、元组、字符串)的更多相关文章

  1. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  2. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  3. python基础数据类型之列表,元组操作

    一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...

  4. Python - 反向遍历序列(列表、字符串、元组等)的五种方式

    1. reversed() a = [1, 2, 3, 4] for i in reversed(a): print(i) 2. range(len(a)-1, -1, -1) a = [1, 2, ...

  5. python笔记(1)--序列(列表 元组 range)

    一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...

  6. 1.11 Python基础知识 - 序列:元组

    元组(tuple)是一组有序系列,元组和列表是否相似,但是元组是不可变的对象,不能修改.添加或删除元组中的元素,但可以访问元组中的元素 元组的定义: 元组采用圆括号中用逗号分隔的元素 元组的基本操作和 ...

  7. Python基础语法之列表 元组

    1 列表 列表由一系列按照特定顺序的元素组成,其中的元素可以使不同的数据类型,用[ ]来表示列表,用逗号来分割列表中的元素. 1.1 列表操作之切片 a = [1, 2, 3, 4, 5, 6, 7, ...

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

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

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

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

随机推荐

  1. Codeforces Round #396 (Div. 2) A B C D 水 trick dp 并查集

    A. Mahmoud and Longest Uncommon Subsequence time limit per test 2 seconds memory limit per test 256 ...

  2. 牛客326B 背单词

    传送门:https://ac.nowcoder.com/acm/contest/326/B 题意:给你一个n,你需有找有多少个长度从1~n 的单词,满足最长连续元音少于A个并且最长连续辅音长度少于B. ...

  3. 手脱ACProtect V1.4X(有Stolen Code)之补区段

    首先需要说的是,这个壳是ximo大神视频教程里的 0041F000 > pushad ; //程序入口点 0041F001 E8 call NgaMy.0041F007 0041F006 E8 ...

  4. Difference between List View and DataGrid in WPF

    Well, in WPF the difference between ListView and DataGrid is just one. Editing. You need editing use ...

  5. LightOJ 1137 - Expanding Rods 基础计算几何

    http://www.lightoj.com/volume_showproblem.php?problem=1137 题意:一根长度为L的杆热膨胀为L',左端点到右端点间距离不变,且膨胀后的杆的弧为圆 ...

  6. 【设计模式】 模式PK:抽象工厂模式VS建造者模式

    1.概述 抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:具有不同分类维度的产品组合,采用抽象工厂模式则是不需要关心构建过程,只关心什么产品由什么工厂生产即可.而建造者模式则是要求按 ...

  7. mvc BundleConfig实现对Css、Js压缩打包加载

    Bundle不是.net Framework框架中的一员,使用Bundle首先要先添加引用,如下: nuget包管理--程序包管理控制台--Install-Package Microsoft.AspN ...

  8. 51nod 1806 wangyurzee的树

    基准时间限制:1 秒 空间限制:131072 KB    wangyurzee有n个各不相同的节点,编号从1到n.wangyurzee想在它们之间连n-1条边,从而使它们成为一棵树.可是wangyur ...

  9. 【洛谷 P3809】 【模板】后缀排序

    题目链接 先占个坑,以后再补. \(SA\)的总结肯定是要写的. 等理解地深入一点再补. #include <cstdio> #include <cstring> const ...

  10. centos6.4 yum安装nginx+mysql+php

    1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport ...