python列表和元组的数据结构_【自学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

这里整理了列表的相关技术点,有什么不对或者疑惑的地方欢迎留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值