zoukankan      html  css  js  c++  java
  • python列表

    列表list

    需要注意的是:建议不要将变量声明成str,list,tuple,dict。因为这四个是关键字,每个类型的标识,为避免错误,建议不要作为变量名

    列表的声明方式

    >>> names=['希望','hreo',666,888,'abc']
    >>> print(names)
    ['希望', 'hreo', 666, 888, 'abc']
    >>> 

    列表中可以添加任意类型的数据。和str类型一样,list也支持切片,因为其本身就有索引

    >>> names[0]
    '希望'
    >>> names[2:]
    [666, 888, 'abc']
    >>> names[:]
    ['希望', 'hreo', 666, 888, 'abc']
    >>> names + ['888',"流浪街头"]  #这里的添加不会将结果反映到源变量中
    ['希望', 'hreo', 666, 888, 'abc', '888', '流浪街头']
    >>> 

    相对于str类型而言,list类型是可变的,可以为某个索引对应的值做更改

    >>> names[0]=['name','name','length']
    >>> names
    [['name', 'name', 'length'], 'h_change', '6_change', '8_change', 888, 'abc']
    >>> 

    列表中含有列表,可以这样来获得

    >>> names
    [['name', 'name', 'length'], 'h_change', '6_change', '8_change', 888, 'abc']
    >>> names[0][1]  #将获得索引为0的列表里索引为1的元素
    'name'
    >>>   

    使用len()可以输出list和元素个数

    >>> len(names)
    6

    list的常用方法

    添加元素:
    	append(参数)	向末尾追加
    	extend(参数)	参数需是列表,合并列表,将列表追加到尾部
    	insert(位置,要添加的参数)	插入元素
    删除元素
    	remove(元素名)	删除列表没有的元素会报错
    	del关键字	del 列表名将整个列表删除 del name[0]将删除列表name第一个元素
    	pop(index)通过索引下标删除某个元素并返回该元素  

    以上方法对list类型数据操作都会直接影响到元数据类型的值

    操作列表:
            count(元素)函数                        返回list列表中此函数的个数,存在则返回个数,不存在返回0
            index(元素)函数                        返回list列表中此函数的索引下标,存在则返回索引位置,不存在则报错
            index(元素,indexstart,indexend)        查找list列表中开始位置到结束位置中的这个元素的下标
            len(list)                            列表元素个数
            max(list)                            列表元素最大值
            min(list)                            列表元素最小值
            sort()函数                            将列表中所有元素按顺序排列,从小到大,列表中不能字符串数字混用,int类型永远小于str类型
            sort(reverse=True)                    将列表中所有元素按顺序排列,从大到小,与下面的作用一样
            reverse()函数                        将列表中所有元素反着排列,位置在前的变成位置在后的
            clear()                                清空列表
            copy()                                复制列表
            list(seq)                            将元组转换为列表

    注:min(list)方法以下的几个方法都会对list类型结果产生影响。

    >>> names=['name','age','gender',123,'abc']
    >>> lnames=names
    >>> names.pop
    >>> names.pop(0)
    'name'
    >>> names
    ['age', 'gender', 123, 'abc']
    >>> lnames
    ['age', 'gender', 123, 'abc']
    >>> 
    >>> names=['name','age','gender',123,'abc']
    >>> lnames.clear()
    >>> lnames
    []
    >>> lnames=names[:]
    >>> lnames
    ['name', 'age', 'gender', 123, 'abc']
    >>> names.pop(0)
    'name'
    >>> names
    ['age', 'gender', 123, 'abc']
    >>> lnames
    ['name', 'age', 'gender', 123, 'abc']
    >>> 
    >>> lnames.clear()
    >>> lnames
    []
    >>> lnames=names.copy()
    >>> lnames
    ['age', 'gender', 123, 'abc']
    >>> names.append('add')
    >>> names
    ['age', 'gender', 123, 'abc', 'add']
    >>> lnames
    ['age', 'gender', 123, 'abc']
    >>> 

    查看以上三段代码,第一个是用=符号为lnames赋值,然后更改names值,与lnames做对比

    第二个是用切片的[:]方式,第三种是list类型的copy()方法。

    根据以上结果来看,使用=符号,新列表会随着源列表的改变而改变,而[:]和copy方法,则不会受影响

    结论:

    当使用“=”符号将一个列表赋值给另一个列表时,,那么如果这个列表改变,另一个也会随着改变
    而使用“=”符号的同时通过[:]截取的方式给另一个列表赋值,则不会随着源列表的改变而改变
    copy()将源列表拷贝一份,并不会指向源列表的值,不会随着源列表的改变而改变。是一个新的列表.。
    由此可见,后两种是一样的


    小代码

    实现菲波那切数列

    >>> a,b = 0,1
    >>> while b<1000:
        print(b,end=',')
        a,b = b,a+b
    
        
    1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

    分别将0和1赋值给a和b

    循环b小于1000,每次循环,将b的值赋值给a,将a+b的值赋值给b。

    而整个代码,关键点的就是b=a+b,这句

    print(b,end=',')这句话,从结果就可以看出,在数据输出之后,在后面输出的字符。

    更多的数据资料请查看python3.x的官方文档

  • 相关阅读:
    Sencha Touch 使用笔记
    区数据
    省市 数据
    js校验身份证
    js 邮政编码验证
    原生js添加class
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
    js学习笔记 Function类型属性的理解
    js学习笔记 理解原型对象
    js学习笔记 chapter5 引用类型
  • 原文地址:https://www.cnblogs.com/tademeng/p/7456333.html
Copyright © 2011-2022 走看看