zoukankan      html  css  js  c++  java
  • python初步学习-python数据类型-列表(list)

    列表

    list 在 python 中具有非常强大的功能

    定义

    在python中,用方括号表示一个list:[]

    在方括号里面,可以是 int,也可以是 str类型的数据,甚至也可以是Flase/True这样的布尔值

    • 列表可以无限大,就是说list里面可以容纳的元素数量无限,当然这是在硬件设备理想的情况下。

    在 java 中有一个跟 list 相似的数据类型-数组,但是两者之间还是有差别的。
    在 java 中,数组的元素必须是基本数据类型中某一个,也就是相同数据类型,要么全是int类型,要么全是char类型等。不能一个数组中既有int类型又有char类型。这是因为java中的数组需要提前声明,声明的时候就确定了里面的类型。但是list中的元素数据类型确实任意的,可以是int、str、list,dict等。

    • 列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。
      • 索引操作符让我们可以从序列中抓取一个特定项目
      • 切片操作符让我们能够获取序列的一个切片,即一部分序列

    索引和切片

    在字符串中,索引号是以字符为单位确定的;而在list中,是以元素为单位

    >>> a = 'hello.world'
    >>> a[2]
    'l'
    >>> b = ['alpha','bete','gamma']
    >>> type(b)
    <type 'list'>
    >>> b[2]
    'gamma'
    >>> b[:2]   #跟str中的类似,切片的范围是:包含开始位置,到结束位置之前
    ['alpha', 'bete']   #不包含结束位置
    >>> b[:2][1]    #可以进行二次切片
    'bete'
    

    list和str两种类型的数据,有共同的地方,它们都属于序列(都是一些对象按照某个次序排列起来,这就是序列的最大特征),因此,就有很多类似的地方。如刚才演示的索引和切片,是非常一致的。

    >>> a.index('h')
    0
    >>> b.index('bete')
    1
    

    如果从右边开始编号,右边第一个可以编号为-1,然后向左依次是:-2,-3,...,依次类推下来。这对字符串、列表等各种序列类型都是用。

    >>> a[-1]
    'd'
    >>> b[-2]
    'bete'
    

    反转

    这个功能在编程中经常会用到。

    方法一

    >>> b = ['alpha','bete','gamma']
    >>> b[::-1]
    ['gamma', 'bete', 'alpha']
    >>> b
    ['alpha', 'bete', 'gamma']
    

    上述不管是str还是lst反转之后,再看原来的值,没有改变。这就说明,这里的反转,不是在“原地”把原来的值倒过来,而是新生成了一个值,那个值跟原来的值相比,是倒过来了。

    方法二

    使用 reversed() 函数

    >>> b
    ['alpha', 'bete', 'gamma']
    >>> reversed(b)
    <listreverseiterator object at 0x059DC170>
    >>> list(reversed(b))
    ['gamma', 'bete', 'alpha']
    

    它返回一个可以迭代的对象

    list基本操作

    • len() 查看list中的元素个数
    >>> b
    ['alpha', 'bete', 'gamma']
    >>> len(b)
    3
    
    • + 连接两个列表
    >>> b
    ['alpha', 'bete', 'gamma']
    >>> len(b)
    3
    >>> c = ['apple','orange','banana']
    >>> b + c
    ['alpha', 'bete', 'gamma', 'apple', 'orange', 'banana']
    
    • * 重复元素
    >>> b*2
    ['alpha', 'bete', 'gamma', 'alpha', 'bete', 'gamma']
    
    • count 计算元素在列表中出现的次数
    >>> b
    ['alpha', 'bete', 'gamma', 'delta', 'epsilon']
    >>> b.count('a')
    0
    >>> b.count('alpha')
    1
    
    • in 成员运算符
    >>> 'apple' in c
    True
    >>> 'apple' not in c
    False
    
    • max()、min() 用法和str中的一样,需要注意的是如果元素不是int类型,都是按照字符在ascii编码中所对应的数字进行比较的。
    >>> max(b)
    'gamma'
    >>> min(b)
    'alpha'
    
    • append 将新的元素x追加到list的尾部。
    >>> b
    ['alpha', 'bete', 'gamma']
    >>> b.append('delta')
    >>> b
    ['alpha', 'bete', 'gamma', 'delta']
    >>> id(b)
    94144512
    >>> b.append('epsilon')
    >>> b
    ['alpha', 'bete', 'gamma', 'delta', 'epsilon']
    >>> id(b)
    94144512
    

    从上面可以看出,生成一个新的列表后,列表的地址没有发生变化,因此,可以说明
    列表是可以修改的。这种修改,不是复制一个新的,而是在原地进行修改。

    • insert 将元素插入到列表中,不是尾部
    >>> b
    ['alpha', 'bete', 'gamma', 'delta', 'epsilon']
    >>> b.insert(0,'zaeta')
    >>> b
    ['zaeta', 'alpha', 'bete', 'gamma', 'delta', 'epsilon']
    >>> 
    
    
    • list中的元素,不仅能增加,还能被删除。删除list元素的方法有两个,它们分别是:

      • pop 删除最后一个元素并返回这个元素
      >>> b
      ['zaeta', 'alpha', 'bete', 'gamma', 'delta', 'epsilon']
      >>> b.pop()
      'epsilon'
      >>> b
      ['zaeta', 'alpha', 'bete', 'gamma', 'delta']
      
      • remove 移除指定元素,没有返回值
      >>> b
      ['zaeta', 'alpha', 'bete', 'gamma', 'delta']
      >>> b.remove('delta')
      >>> b
      ['zaeta', 'alpha', 'bete', 'gamma']
      
  • 相关阅读:
    服务器SSL不安全漏洞修复方案
    vs2010 vs2013等vs中如何统计整个项目的代码行数
    Windows10中的IIS10.0安装php manager和IIS URL 重写2.0组件的方法
    让Windows Server 2008r2 IIS7.5 ASP.NET 支持10万并发请求
    angularJS 上传multipart/form-data
    idea 取消缩进
    Java 自动检测文本文件编码
    idea 快捷键
    java 8 bug
    Python学习笔记
  • 原文地址:https://www.cnblogs.com/pingqiang/p/7719939.html
Copyright © 2011-2022 走看看