• 【自学Python系列】Python 基础 内部数据结构之列表和元组


    列表

    开篇讲了一些语言的基础,今天开始记录一些学习中的其他python的知识。

    列表 由一系列按特定顺序排列的元素组成。用方括号([])来表示列表,元素用逗号隔开。

    可以将任何东西加入列表中,其中的元素之间可以没有任何关系。命名的话最好用复数来命名

    访问元素

    • 因为是顺序的,所以可以从索引获取元素,从0 开始而不是1.
    • 如果返回最后一个元素索引是-1, 这样的约定可以让我们使用负数来从最后开始去索引列表中的元素。
    • 可以使用其他变量一样使用列表中的各个值。

    增删改查

    • 修改列表元素直接使用索引赋值就可以修改指定索引的元素值。
    • .append() 在列表末尾增加元素,象使用栈一样,起初初始化一个空列表,然后append数据。
    • .insert()在列表任何位置添加新元素,需要指定元素索引和值。指定索引,在索引位置插入新值,其他元素顺序向后增加+1索引值。
    • 删除列表
      + del 需要提供元素在列表的索引,可以删除任何位置元素,删除后并无返回,元素是被直接删除,你将无法访问。
      + pop() 将元素从列表中删除,元素就不再列表中了,并接着使用它的值。方法可删除列表末尾的元素,并让你使用pop出来的元素,更象一个栈来使用。
      + 加入你需要pop出指定位置的元素,需要提供参数索引值。
      + 有时我们并不知道索引,知道元素值,可以使用remove()方法来删除,此方法也可以获取到删除的元素并使用它。
      + 方法remove()只删除第一个指定的值,如果存在从夫的值,需要使用循环来判断是否删除了所有的值。

    组织列表

    创建列表中,元素的排列顺序常常无法预测。

    • sort() 永久性排序,如果想反向排序,需要提供参数 reverse=True. e.g. cars.sort(reverse=True)
    • sorted() 临时性排序,并不影响原有顺序。反向,提供参数 reverse=True
    • reverse() 永久性反转列表,并不是按照什么规定顺序排序,而就是将原有顺序,反转,如果想变为原有顺序,直接在反转一次。
    • len() 快速或许列表长度,列表元素计算长度是从1 开始计算。

    避免使用中使用索引报错,因为从0开始记数。
    + 索引-1 是你想访问的最后一个元素
    + -1 索引也是最后一个元素。
    + pop() 删除并返回最后一个元素。

    发生索引错误,可以将列表或者长度打印出来,方便查找错误原因。

    操作列表

    • 遍历 使用 for 循环
      + for item in items: 记得后边的冒号 表示这个for循环开始。

    循环很重要,自动化完成重复工作的常见方式之一。

    Python 根据缩进来判断代码行与前一个代码行的关系。

    数值列表

    列表非常适合用于存储数字集合。

    • range() 轻松生成一系列的数字。
      + for value in range(1,5): 知识打印了1~4,语义理解应该是从第一个值开始数,并在到达指定的第二个值后停止并不包含第二个值。

    要创建数字列表,可以使用list()将range()的结果直接转换为列表。
    + number = list(range(1,6))

    range 也可以指定步长(就是一个数到另一个数的间隔)
    + range(2,11,2) # 从2 到 11 ,每次间隔是2.

    对数字列表进行统计

    • min() 最小数
    • max() 最大数
    • sum() 求和

    列表解析 将for循环和创建新元素的代码合并成一行,自动附加新元素。

    • squares = [value**2 for value in range(1,11)]
    • 语法:
      + 首先指定一个描述列表名squares
      + 左方括号,定义一个表达式,用于生成需要存储到列表的值。 value**2
      + for循环,用于给表达式提供值
      + 右方括号
      + 这个for语句没有冒号结尾

    使用列表的一部分

    python可以处理列表的部分数据--切片

    要创建切片,要指定使用的第一个元素和最后一个元素的索引。到第二个截至,并不包含第二个参数的元素。

    • players[0:3] 输出也是一个列表,是列表的子集。如果没有指定第一个索引,将自动从列表开头开始。players[:3]
    • 要切片终止于末尾,也可以省略第二个索引。 players[1:]
    • 索引要注意负数表示从后往前的索引。

    如果要遍历列表的部分元素,可以在for中使用切片列表。

    复制列表,可创建一个包含整个列表的切片,可以省略起始索引和终止索引 [:],从列表中提取的切片,创建了列表的副本,将副本存储到变量中。

    • 如果只是拿一个列表赋值给另一个列表,实际上只是让新变量也关联到赋值列表上。因此两个变量都指向了同一个列表。

    元组###

    列表非常适合用于存储在程序运行期间可能变化的数据集。
    列表是可以修改的。

    有时我们需要一系列不可修改的元素,元组就可以满足需求。

    • 和列表很多相似的地方。
    • 使用圆括号创建。
    • 使用索引访问其元素。
    • 试图修改元组的操作是被禁止的,不能给元组的元素赋值。给元组变量赋值是合法的。
    • 使用for循环遍历元组的元素

    虽然不能修改元组的元素,但可以给存储元组的变量赋值。应该理解为重新定义一个新的元组。

    元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

    编码规范###

    • 用Tab,4个空格来排版
    • 一行的代码最好不要超过80字符。注释的行长度不要超过72
    • 可以使用空行来组织程序文件
    
    If condition == ‘abc’:
          pause
    elif:
          pause
    else:
          pause
    
    

    可以包含多了elif模块,也可以省略else模块。

    Python中检查是否相等时是区分大小写的。所以都可以转换为小写再进行比较 .lower()

    判断特定值是否包含在某个列表中。if item in items:

    判断特定值不包含在某个列表中。 if item not in items:

    判断列表是否为空, if listname: python将在列表至少包含一个元素时返回True,否则返回False
    这里整理了列表的相关技术点,有什么不对或者疑惑的地方欢迎留言。

  • 相关阅读:
    坚决不再犯的脑残错误
    2018.8.21提高A&省选组模拟考试
    2018.10.9模拟考试
    fread()快读
    2018.10.6模拟考试
    2018.10.4模拟考试
    2018.8.20提高AB组模拟考试
    2018.8.21提高AB组模拟考试
    2018.8.19提高B组模拟考试
    2018.8.18提高B组模拟试题
  • 原文地址:https://www.cnblogs.com/libbybyron/p/14091663.html
Copyright © 2020-2023  润新知