【自学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
这里整理了列表的相关技术点,有什么不对或者疑惑的地方欢迎留言。

原文地址:https://www.cnblogs.com/libbybyron/p/14091663.html