zoukankan      html  css  js  c++  java
  • python数据类型之列表

    python数据类型之列表

    列表属于可变数据类型,在python程序中所有的数据都是围绕对象这个概念来构建的,对象包含一些基本的数据类型:数字,字符串,列表元组,字典等。

    可变对象与不可变对象

    实例被创建后,身份和类型是不可变的。
    如果值是不可以被修改的,则是不可变对象。
    如果值是可以被修改的,则是可变对象。
    举例说明:
    列表可变示例:id不变,type不变,value值可变。

    >>> x = [1,2,3,4,5,6]
    >>> id(x)
    2192693759688
    >>> type(x)
    <class 'list'>
    >>> x
    [1, 2, 3, 4, 5, 6]
    >>> x[0]=8
    >>> id(x)
    2192693759688
    >>> type(x)
    <class 'list'>
    >>> x
    [8, 2, 3, 4, 5, 6]
    >>> 
    

    字符串不可变类型示例:

    >>> m = 'hello world'
    >>> id(m)
    2192694105392
    >>> type(x)
    <class 'list'>
    >>> m
    'hello world'
    >>> m[0]
    'h'
    >>> m[0]='ko'
    Traceback (most recent call last):
    File "<pyshell#103>", line 1, in <module>
    m[0]='ko'
    TypeError: 'str' object does not support item assignment
    >>> 
    

    总结:
    数字、字符串、元组是不可变类型,这些数据类型是可hash的。列表、字典是可变类型,这类数据类型是不可hash的。

    >>> x={1:2,3:4}
    >>> hash(x)
    Traceback (most recent call last):
    File "<pyshell#5>", line 1, in <module>
    hash(x)
    TypeError: unhashable type: 'dict'
    >>> x=[1,2,3]
    >>> hash(x)
    Traceback (most recent call last):
    File "<pyshell#7>", line 1, in <module>
    hash(x)
    TypeError: unhashable type: 'list'
    >>> y='hello world'
    >>> hash(y)
    -3726519819292900381
    

    列表创建

    创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。列表的数据项不需要具有相同的类型。当然列表内元素可以是列表,元组,字典等任意数据类型。
    示例:

    >>> list1 = ['haha','baidu',2017]
    >>> lsit2 = [1,2,3,4,5]
    

    访问列表的值

    访问列表的值可以使用for循环来遍历,也可以像字符串那样通过索引来访问列表的值。

    >>> list1 = ['haha','baidu',2017]
    >>> [i for i in list1]
    ['haha', 'baidu', 2017]
    >>> for i in list1:
    		print(i)
    
    haha
    baidu
    2017
    >>> 
    >>> list1 = ['haha','baidu',2017]
    >>> list1[0]
    'haha'
    >>> list1[1:3]
    ['baidu', 2017]
    >>> 
    

    因为常常用到enumrate(),这里介绍下它,enumerate()是python的一个内置函数。用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
    语法:
    enumerate(sequence,start)
    sequence------一个序列,迭代器或者其他支持迭代对象。
    start------下标起始位置,默认为从0开始。
    示例:

    >>> for k,v in enumerate(list2,1):
    		print(k,v)
    
    
    1 one
    2 two
    3 three
    

    更新列表

    可以对列表的数据项进行修改或更新。

    #!/usr/bin/env python
    
    li = ['jack', 'tom', 2017, 2000]
    print ("第三个元素为 : ", li[2])
    list[2] = 2001
    print ("更新后的第三个元素为 : ", li[2])  
    

    删除列表

    可以使用 del 语句来删除列表的的元素,使用del删除元素不会有任何提示。

    #!/usr/bin/env python
    
    li = ['jack', 'tom', 2017, 2000]
    print (li)
    del li[2]
    print ("删除第三个元素后结果: ", li)
    

    列表常用方法

    序号方法
    1list.append(obj)
    在列表末尾添加新的对象
    2list.count(obj)
    统计某个元素在列表中出现的次数
    3list.extend(seq)
    在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4list.index(obj)
    从列表中找出某个值第一个匹配项的索引位置
    5list.insert(index, obj)
    将对象插入列表
    6list.pop(obj=list[-1])
    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7list.remove(obj)
    移除列表中某个值的第一个匹配项
    8list.reverse()
    反向列表中元素
    9list.sort([func])
    对原列表进行排序
    反向排序使用:list.sort(reverse=True)
    10list.clear()
    清空列表
    11list.copy()
    复制列表
  • 相关阅读:
    2017年软件工程基础-个人项目作业
    [2017BUAA软工]第1次个人作业
    [2017BUAA软工]第0次个人作业
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件评测
    结对第二次作业
    软件工程结对作业
    寒假作业(2/2)
    软件工程寒假快乐作业
    技术总结——Vue页面刷新的方法
  • 原文地址:https://www.cnblogs.com/liao-lin/p/6965171.html
Copyright © 2011-2022 走看看