Python中列表list的易错总结

  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 无鞋童鞋

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值