zoukankan      html  css  js  c++  java
  • Python基础__Python序列基本类型及其操作(1)

      本节考虑的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. 元组的操纵

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

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

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

  • 相关阅读:
    国内最火的3款前端开发框架
    Cordova是做什么的
    老师你好。使用cordova生成的hellowold 的安卓5.0版本太高。怎么才可以生成4.4的呢?
    一个类似bootstrap的foundation
    role在标签中的作用是什么?
    如何做到根据不同的进度用不同的颜色显示整个进度条
    wall 和panel有啥区别
    git ignore
    eclipse js 引用跳转
    计划
  • 原文地址:https://www.cnblogs.com/fangfang31140519/p/8440338.html
Copyright © 2011-2022 走看看