首页 > 编程 > Python > 正文

Python中列表list的易错总结

2019-11-06 08:54:47
字体:
来源:转载
供稿:网友

  python中list列表属于一种对象类型,作为重要的一种数据存储对象,相信每位初学python者都会接触,就像C/C++语言中数组一样。介于此,本文不再过多详细介绍list列表基础知识和其函数接口,只介绍本人认为在使用过程中需要注意的几个容易忽略的知识点,希望给更多人在使用list列表时候提个醒。

1. 元素类型  list列表以中括号形式罗列各个元素,并且列表中元素可以是任意类型,包括元组,列表以及字典。各种类型可以混合表示。如下:

listA = [1,'12',8.8,[3,4],(5,6),{'dist':7}]

2. 内建函数range语句  我们直接看示例吧,如下:

x = [3,4,5,6]for i in range(len(x)) PRint(i,end=' ') # 结果为:0 1 2 3 print(x[i],end=' ') # 结果为:3 4 5 6

  关于内建函数range(start=0, stop [,step] )表示数字元素组成的列表,范围介于start和stop之间,并且跨度为step。start默认为0,step默认为1。start和stop可以忽略不写。单是如果步长不是1的时候,start和stop都要表示出来,哪怕start为0。   以上其实并不是我想要介绍的重点,重点是range( )范围是不包括stop的,所以上面示例只有4个数0,1,2,3,并不包含4。

3. 列表解析建立列表  list列表可以正常初始化各个元素,但是如果列表中各个元素包含一定规律,其实python早就方便的定义了一种快捷赋值方法。例如我们想初始化某个列表中各个元素为0,还有我们想初始化列表中各个元素是递归增长的等等。这时候我们就可以借助for语句依靠列表解析的方法初始化列表元素,如下:

listA = [x**2 for x in range(1,5)] # 结果为:[1,4,9,16]

  这里x**2 表示求x的2次方,另外需要注意x**2 和for之间并没有’,’。

listB = [0.0 for x in range(1,5)] # 结果为:[0.0,0.0,0.0,0.0]

4. 列表末尾增加元素  列表末尾增加元素主要有append( )和extend( )两种函数方法,以及索引表达。但是它们的使用需要注意以下几个地方。如下:

listA = [1,2,3]listB = [4,5,6]listA.extend([4,5,6]) # 结果为:[1,2,3,4,5,6]listA.extend(listB) # 结果为:[1,2,3,4,5,6]

  extend()函数方法是连接两个列表作用,所以它的参数不可以是一个数,必须为一个列表,更准确来说参数必须可迭代。

listA.append([4,5,6]) # 结果为:[ 1,2,3, [4,5,6] ]listA.append(10) # 结果为: [ 1,2,3,10]

  append()函数方法是在列表尾部增加一个元素,可以是数,也可以是一个列表。注意第一个例子,结果并不是[1,2,3,4,5,6]。注意其和extend中第一个例子的区别。

listA[len(listA):] = listB #结果为:[1,2,3,4,5,6]

  上面也是一样的道理,是表示列表合并,不是表示增加一个列表元素。所以结果并不是[ 1,2,3, [4,5,6] ]。

5. 索引表达  A = [ 1, 2, 3, 4 ] 中,A[0]—A[3]分别表示1,2,3,4。而A[-1]—A[-4]分别表示4,3,2,1。记住,两种方式都是索引值小的对应的是靠前的元素。

6. sort( )方法  list列表自带排序函数接口,默认是升序排序,如下:

listA.sort() # 默认是升序排序一个列表listA.sort(reverse=true) # 降序排序方式

  但是该处需要注意sort( )函数方法对list列表是有要求限制的,它要求列表中元素不可以是字符串和数字混合,当然元组,列表等就更不可以出现了。

  本文会继续补充。。。


个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!

转载请注明出处:CSDN 无鞋童鞋


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表