基础篇9-python基本数据结构-列表

一.列表:

1.有序的集合

2.通过偏移来索引,从而读取数据

3.支持内嵌

a =[[1,2,3],[4,5,6]]

4.可变类型

a[0][1] = 7

二.切片

a = [1,2,3,4,5,6,7]

a[0:3:1]

0 索引开始

3 索引结束

1 间隔(默认1)

正向索引 它是从左往右索引

假如要取出1234

a[0:4:1]

反向索引 它是从右往左索引

a[-1:-4:-1]

默认索引

a[1::2]

三.添加操作

+ 生成一个新的列表

a = [1,2,3]

b = [4,5,6]

print a + b

Extend 接受参数并将该参数的每个元素都加到原有的列表中,原列表是修改列表而不是新建列表

a = [1,2,3]

b = [4,5,6]

id(a)

printa.extend(b)

id(a)

Append:添加任意对象到列表末端

a = [1,2,3]

printa.append(4)

printa.append([5,6,7])

Insert:插入任意对象到列表,可以控制的插入的位置

a = [1,2,3]

printa.insert(1,“ab”)

1代表要添加的位置

ab 代表要添加的内容

四.修改:

修改列表本身只需要直接赋值操作就行

A = [1,2,3]

A[0] = ‘haha’

五.成员关系

In not  in 我们可以判断一个元素是否在列表里。

a = [1,2,3,4]

in  

2 in a True

5 in aFalse

not in 不是

2 not ina  False

5 not ina  True

六.列表推导式:(列表解析)

range(1,20,2)

1 开始

20 结束

2 间隔

[expr foriter_var in iterable]

1.首先迭代iterable里面所有内容,每一次迭代,都把iterable里相应的内容放到iter_var中,在表达式中应用该iter_var的内容,最后比如我们要生成一个包含1到10的列表

[x for x inrange(1,11)]

[expr foriter_var in iterable if cond_expr]

2.加入了判断语句,只有满足条件的内容才把itrerable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达要生成包含1到10所有奇数的列表

[x for x inrange(1,11) if x %2 == 1]

七.排序翻转:sort,reverse

a  = [33,11,22,44]

这个方式直接修改原列表,它的返回值为none,所以

b = a.sort()

print b 输出的内容是None

print a

if b isNone:

  print “None!”

else

 print “No None!”

list的reverse函数:反转一个list,他的返回值为none比如上面的列表a

b  = a.reverse()

print b 输出内容是none

直接查看a列表变量能看到翻转的效果