精华内容
下载资源
问答
  • Table of Contents generated with DocTocpython系列-字符串、列表、元组的操作序列的访问及运算符序列是为满足程序中复杂的数据表示,python支持组合数据类型,可以将一批...序列的下标从0开始,后面下标依次为1...

    Table of Contents generated with DocToc

    python系列-字符串、列表、元组的操作

    序列的访问及运算符

    序列是为满足程序中复杂的数据表示,python支持组合数据类型,可以将一批数据作为一个整体进行数据操作,这就是数据容器的概念。

    容器中可包含多个数据(元素),容器中的数据(元素)有先后次序,每个元素通过用其下标(索引)来访问。序列的下标从0开始,后面下标依次为1,2,3,….。

    序列是其中一大类数据容器的统称,不是具体的数据类型。

    常用的序列类型:列表(list),字符串(string),元组(tuple)

    序列通用操作

    操作

    描述

    X1+X2

    连接系列X1和X2生成新序列

    X*n

    序列X重复n次,生成新序列

    X[i]

    引用下标为i的成员

    X[i:j]

    引用序列X中i到j-1的序列

    x[i:j:k]

    引用序列X中的i到j-1的序列,步长为k

    len(X)

    计算序列中成员的个数

    max(X)

    序列X中的最大值

    min(X)

    序列X中最小值

    v in X

    检查v是否存在序列X中返回布尔值

    v not in X

    检查v是否不在X中,返回布尔值

    访问单个元素

    假设序列中有n个元素,单个访问时下标的有效范围是0到n-1 或者 -1 到 -n(表示从序列最后有个开始访问

    切片访问一部分元素

    切片X[i,j,k]中i,j用来定位元素,可以为负数

    切片第二个参数省略是表示到最后一个元素

    第一个下标为0是可以省略

    第三个参数为负时,逆向切片

    序列的复制

    如果将一个序列变量赋值给另一个变量,则这两个变量表达了同一个序列

    a=[1,2]

    b=a

    如果希望2个变量各自拥有独立的序列,可以使用切片

    a=[1,2]

    b=a[:]#从头到尾

    字符串

    字符串是一系列用(')或(")括起来的字符

    引号必须成对出现,如果字符串中出现了单引号或双引号是使用三个算一哈或单引号括起来,比如```hhhh"kk```

    长字符串

    用三引号,可以包含多行字符串

    '''hhhh

    dddddd'''

    多行表示一个字符串,每行末尾加反斜杠()

    'hhhhh

    fffff'

    原始字符串

    在一个字符串前面加一个字符r,其中的\不被当成转义字符前缀

    s=r'ffff\nccc'

    print(s)

    结果为:ffff\ncc

    字符串是不可修改的,但可以用新的字符串对变量进行重新赋值

    s="hell"

    s[0]='d'#wrong

    s='like'#ok

    字符串常用函数

    函数

    解释

    S.title()

    字符串S首字符大写

    S.lower()

    字符串s变小写

    S.upper()

    变大写

    S.strip(),rstrip(),S.lstrip()

    删除前后or右,左空格

    S.find(sub[,start[,end]])

    在s中查找sub子串首次出现的位置

    S.replace(old,new)

    new子串替换s子串

    s.join(X)

    将序列X合并成字符串(X)只能是字符串

    s.split(sep=None)

    字符串拆分成列表

    s.count(sub[,start[,end]])

    计算sub子串在s中的出现次数

    s="this is python"

    s.find("is")

    s.find("is",3)

    s.find("is",3,6)

    数字转化成字符串

    函数str()

    字符串格式化运算符 %

    'happy birthday %d,%s!'%(23,'xiaoming")

    常用格式站位符

    占位符

    含义

    %c

    单个字符或Unicode码转换从字符

    %s

    字符串

    %d

    整数

    %u

    无符号整数

    %o

    八进制

    %x

    十六进制

    %X

    字母大写的十六进制

    %f

    浮点数

    %e

    科学计数法

    %E

    大写E的科学计数法

    %g

    综合%f和%e,字段决定是否使用科学计数法

    %G

    大写表示%g

    format()支持多个站位符,可以为站位符指定转换数据的索引,也可以指定宽度,对齐填充,精度进制

    { :}

    >

    ,千分位

    列表和元组

    列表(list)

    由一系列按照指定顺序排列的元素组成。列表中的元素可以是不同类型。

    列表的表示用方括号([ ])将元素括起来,元素之间用逗号(,)分隔

    列表是序列类型的一种,序列所有的特性和操作对于列表都是成立的,除此之外,列表还有自己的特殊操作。

    列表的创建

    直接使用列表的字面量。

    a = []# 创建一个空列表

    a = [2,3,5,7,11,13]

    使用list()将其他数据类型转换成一个列表。

    a = list('hello')

    a的内容是: ['h', 'e', 'l', 'l', 'o']

    list(range(1,10,2))

    结果是:[1,3,5,7,9]

    列表的元素类型可以是任何类型,也包括列表类型。当列表的元素是列表时,可以构成多维列表,如同一个矩阵。

    matrix = [

    [1, 2, 3, 4, 5],

    [3, 0, 8,11,14],

    [5, 6, 9,12,16],

    [7, 0, 0, 0, 0],

    [9,11,17, 0,15]]

    用matrix[0][0]访问其中第一行第一列的元素

    矩阵的每一行都是一个列表。

    列表元素可以被修改

    赋值

    删除 del

    切片赋值

    如何将列表lst切成相同长度n的序列?

    [lst[i:i+n] for i in range(0, len(l), n)]

    去重seq[:]=[ x for x in seq if seq.count(x)<2]

    列表常用函数

    方法

    描述

    L.append(x)

    尾部追加

    L.clear()

    删除所有元素

    L.count(x)

    L.copy()

    备份

    L.extend()

    列表x扩充到列表L中

    L.index(value[,star[,stop]])

    在指定范围内计算value的下标

    L.insert(index,x)

    在下标index的位置插入

    L.pop(index)

    返回并删除index出的元素,默认最后一个

    L.remove(value)

    删除值为value的第一个元素

    L.reverse()

    倒置

    L.sort()

    排序

    字符串和列表互操作

    拆分字符串函数split()

    函数split()用一个字符或子串将一个字符串分隔成列表的元素。

    date = '3/11/2018'a = date.split('/')print(a)

    输出:

    ['3', '11', '2018']

    如果split()函数不带参数,就是以空格来分割字符串。

    name = 'John Johnson'a = name.split()print(a)

    输出:

    ['John', 'Johnson']

    聚合字符串函数join()

    函数join()用于将一个列表的各个字符串类型的元素组合成一个字符串,元素之间用指定的内容填充。

    a = ['hello','good','boy','wii']print(' '.join(a))print(':'.join(a))

    输出:

    hello good boy wiihello:good👦wii

    元组

    元组是不可修改的任何类型的数据序列。元组像列表一样可以表达任何类型、任意数量的数据的有序序列。

    元组的字面量用圆括号()而不是方括号[]。

    创建元组

    用元组的字面量

    d = (100,20)

    用tuple()方法,把其他序列类型转换成元组。

    a = tuple([2,3,5,7,11])

    元组不可修改

    元组是不可修改的,即不能对元组中的元素进行增加,删除,修改或排序。

    列表中的修改函数append()、insert()、remove()以及del语句都不能用于元组。

    可以使用count(),index()

    列表和元组表示二维表

    students=[(3180102988,"褚好"),

    (3170102465,"王凯亮"),

    (3160104456,"李永"),

    (3171104169,"陈鑫"),

    (318400429,"徐杭诚")]

    for row in students: #按行存取

    print(row[0],row[1])

    print()

    for id,name in students: #按行拆包存取

    print(id,name)

    print()

    for index in range(len(students)): #按索引存取

    print(students[index][0],students[index][1])

    随机函数库(random)

    计算机的随机函数生成的随机数,是按照一定的算法模拟产生的,其结果是确定的,是伪随机数。

    Python中的random模块用于生成伪随机数

    函数名

    含义

    示列

    random.random()

    返回[0.0,1.0)区间的浮点数

    random.random()

    random.uniform(a,b)

    返回[a,b]间的浮点数

    random.randint(a,b)

    返回[a,b]间的整数

    random.randrange([start],stop[,step])

    指定范围获取一个整数

    random.choice(sequence)

    从序列中获取整数

    random.shuffle(x)

    用于将一个列表打乱,将列表内元素随机排列

    random.shuffle(l),l是序列

    random.sample(sequence,k)

    从指定序列中获取长度为k的序列并随机排列

    random.seed(n)

    对随机数生成器进行初始化的函数,n代表种子,参数为空时,随机种子为系统时间

    展开全文
  • 1.序列一块用于存放多个值的连续内存空间,且按一定顺序排列,每个值都分派一个数字,称为索引或位置(1)、索引序列中的每个元素都有一个编号,0开始若负数作为索引时,是-1开始的,最后一个元素下标为-1如:...

    1.序列

    一块用于存放多个值的连续内存空间,且按一定顺序排列,每个值都分派一个数字,称为索引或位置

    (1)、索引

    序列中的每个元素都有一个编号,从0开始

    若负数作为索引时,是从-1开始的,最后一个元素下标为-1

    如:verser=['a','b','c'] print(verser[1])#第二个元素  print(versor[-1])#最后一个元素

    (2)、切片

    访问序列中元素的另一种方法

    sname=[start:end:step]

    start:开始位置  end:结束位置   step:步长

    (3)、序列相加.乘法

    如:verser1['','','']  verser2['','','']  print(verser1+verser2)  #相加  print(verser1*3)  #乘法,输入3个verser1

    序列长度:len(num)

    序列最大值:max(num)

    序列最小值:min(num)

    list():序列转化为列表

    str():序列转换为字符串

    sum():计算元素和

    sorted():对元素进行排序

    reversed():反向序列中元素

    enumerate():将序列组合为一个完整序列,多用在for循环(4)、检查是否是序列成员

    2.列表

    (1)、创建、删除、访问

    创建:listname=[a,b,c……,n]       ##day=datetime.datetime.now().weekdat()#获取当前星期

    创建一个10到20之间的偶数列表:list(range(10,20,2))

    删除:del listname

    (2)、遍历列表

    for循环遍历:for item in listname:

    for循环和emumerate()函数可以实现同时输出索引值和元素内容:for index,item in enumerate(listname) index:原素索引 item:元素值

    (3)、添加、修改、删除列表元素

    添加:listname.append(obj)

    listname.extend(obj) #将一个列表的所有元素添加到另一个列表中

    修改:如:verson=['长亭外','古道边','芳草碧连天']  verson[2]='一行白鹭上青天' #修改列表中第三个元素

    删除:  del verson[-1]删除最后一个元素

    根据元素值删除:remove()方法  verson.remove(“古道边”)

    (4)、对列表进行统计计算

    获取指定元素出现的次数:count()方法 listname.count(obj)

    获取指定元素首次出现的下标:index()方法 listname.count(obj)

    统计数值列表的元素和

    sum(iterable[,start])  iterable:要统计的列表

    (5)、队列表进行排序

    使用列表方法的sort()方法实现:listname.sort(key=none,reverse=False)  key:比较建  reverse:true是降序,False是升序

    使用内置的sorted()函数实现

    sorted(iterable,key=none,reverse=False)

    3.元组

    (1)、创建和删除,访问、修改

    创建:tuplename=(a,b,c,d,……,n)

    type()函数测试变量类型

    删除:del tuplename

    修改:如:name=('张三','李四','王五')  name[1]='赵四'  #修改元组中第二个元素,改为赵四

    (2)、元组与列表等区别

    1>.列表属于可变序列,他的元素可随时修改和删除,而元组是不可辩序列。元素不克修改,除非整体替代。

    2>.列表可以使用append().extend().insert().remove().pop()等方法实现添加和修改列表原始,而元组没有这几个方法。

    3>.列表可以使用切片访问和修改列表中的元素。元组也支持切片但是它只支持通过切片访问元组中的元素,不支持修改

    4>.元组比列表的处理访问速度快,若只需要对元素进行访问,不进行任何修改,选用元组

    5>.列表不能做字典的建元组可以。

    4.字典

    (1)、创建和删除、访问

    创建: dictionary={'key1':'value1','key2':'value2'}

    dictionary=dict(zip(list1,list2))  #映射函数创建字典  可以和元组转化

    dictionary=dict(key1=value1,key2=value2)

    删除:del dictionary

    访问:dictionary['']

    dictionary.get('')

    (2)、遍历

    items()方法可以获取字典中的‘键-值对’的元组列表

    for item in dictionary.items():

    (3)、添加和修改、删除字典中的元素:

    添加、修改:dictionary[key]=value

    删除:del dictionary['香凝']

    5.集合

    (1)、创建集合:

    直接{}创建setname={a,b……,n}

    用set()函数创建:setname=set(iteration)

    (2)、向集合中添加和删除元素

    添加:setname.add(element)

    删除:del()(整个集合)。pop()和remove()(删除一个元素) clear()(清空集合)

    (3)、集合的交集、并集、差集

    &:交集   |:并集  -:差集

    展开全文
  • python 列表切割

    千次阅读 2017-08-28 12:38:57
    python 中有序序列都可被切片 ...切片正序下标从0 开始,逆序下标从 -1 开始 在step方向一定的情况下 ,起点和终点的正向和逆向可以分开使用。但是一定要保证起点和重点之间一定有元素

    python  中有序序列都可被切片

    切片是浅拷贝吗?


    切片格式  :

    Li[start : end :step]   选择的长度 左开右闭,即不包括终点

    切片正序下标从0 开始,逆序下标从 -1 开始



    在step方向一定的情况下 ,起点和终点的正向和逆向可以分开使用。但是一定要保证起点和重点之间一定有元素。









    展开全文
  • 我就可以把 ``array" 当作下标从 1 开始的数组。 o 7.15 当我向一个接受指针的指针的函数传入二维数组的时候, 编译器报错了。 o 7.16 我怎样编写接受编译时宽度未知的二维数组的函数 ? o 7.17 我怎样在函数参数...
  • 学习Python的第三天

    2019-06-27 21:47:48
    第三章 列表 1,用[]来表示列表,用逗号来分隔其中的元素 ...索引0开始而不是1「why:索引所识别的是元素下标,而下标的定义是:当前元素到第一个元素的偏移量(即到第一个元素的距离),所以索...

                                        第三章 列表

    1,用[]来表示列表,用逗号来分隔其中的元素

         (问题:列表里的元素可以是不同character吗?eg:字符和数字)已解(必须是同一种character)

    2,索引;索引从0开始而不是1「why:索引所识别的是元素的下标,而下标的定义是:当前元素到第一个元素的偏移量(即到第一个元素的距离),所以索引对应的其实不是我们日常所理解的元素的位置,而是当前元素距离第一个元素的值」而这也就可以解释为什么最后一个元素的索引位置为"-1"了

          (问题:列表可以被str()方法识别但是不能被title()方法识别,那么列表本身的character是属于什么?)

    3,修改列表元素;1),索引下标eg:message[0],    2),新值赋予下标对应元素eg:message[0] = 'ass'

    4,  添加元素;使用方法append() eg:message.append('ass')  注:添加的元素处于列表最后一位

                             使用放法insert()可在列表任何位置添加新元素eg:message.insert(0, 'ducati')

    5,  删除元素;1)del语句(del属于语句,append属于方法,语句和方法&函数的区别)

                             2)pop()方法;删除列表的元素,并能让你能够接着使用它(相当于提取)

                             3) remove() 方法(前两种是根据元素下标删除元素,remove()是根据元素值删除元素

    6,对列表排序;1)  sort()方法;即元素按照字母顺序排序,不可逆;添加参数reverse=true 即反向排序,

                                 2)  sorted()方法;对列表进行临时排序

                                 3)  reverse()方法;对列表进行反排序

    7,确定列表长度;len()函数;

     

    柏拉图象一切神秘主义者一样,在他的信仰里也有一种确实性的核心,而这种确实性在本质上除了依靠一种生活方式而外,是无法与人相通的——罗素

                                  

     

     

     

    展开全文
  • 1、序列 ...在python中索引也可以是负数,右向左计数,最右边的数是的索引为-1(也就是最后一个数的下标可以是-1). 如 a = ["你","好","啊","吗"] print( a[0] ) print(a[-4]) print("...
  • 1.2.1 ─开始一个XML文档 26 1.2.2 <!DOCTYPE>─指出文档的 类型 27 1.2.3 ─建立文档的根元素 28 1.2.4 建立网页的结构:头和体 29 1.2.5 ─建立网页的头 30 1.2.6 ─给出网页标题 31 1.2.7 ─给出关于网页的更多 ...
  • </li><li>一个栈删除元素又称为出栈或退栈</strong>,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。</li></ul> <p><img alt="stack_demo" src=...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明不...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗?  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    我就可以把“array”当作下标从1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器报错了。 6.19 我怎样编写接受编译时宽度未知的二维数组的函数? 6.20 我怎样...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不...
  • php高级开发教程说明

    2008-11-27 11:39:22
    这样,数小时甚至整天的工作将不得不耗费在本来开始就可以避免的问题上,这些问 题往往决定了程序开发的成败,因为“时间是你永远都不可能充分拥有的珍贵资源”。下面的内 容将针对大部分基本的却是非常重要的...
  • 我就可以把“array”当作下标从1 开始的数组。  函数和多维数组  6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器报错了。  6.19 我怎样编写接受编译时宽度未知的二维数组的函数?  6.20 我...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明...
  • 每个输入结点都有不同的序号,从1开始递增。  元件位置和大小: CPoint Orgpoint; int width; int height; Orgpoint用于记录元件在视图中左上角的坐标 width用于记录元件宽度 height用于记录元件高度 ...
  • ~第1章 声明和初始化 1 基本类型 1 1.1 我该如何决定使用哪种整数类型? 1  1.2 为什么不精确定义标准类型的大小? 2 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确...
  • 2.2.2 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 2.2.3 不能做switch()的参数类型是 2.2.4 int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A...
  • 方便我们可以通过下标去响应式的改动数组元素,这里后文再说。 我们先说说怎么“变异”数组的push等方法,并且找出数组元素中的对象,让对象响应式。我们结合我的注释版源码来看一下。 <pre><code...
  •  ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,...
  • 正则表达式

    2014-12-03 14:51:39
    这些复杂的模式使用的正则表达式语法指定了该表达式中每个元素要重复出现的次数. 指定复制的字符总是出现在它们所作用的模式后面.由于某种复制类型相当常用.所以有一些特殊的字符专门用于表示它们.例如: +号匹配的...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

列表元素下标从1开始吗