Python数据结构之列表

 

1、Python列表是Python内置的数据结构对象之一,相当于数组

2、列表用[] 包含,内有任意的数据对象,每一个数据对象以 ,逗号分隔,每隔数据对象称之为元素

3、Python列表是一个有序的序列

4、Python列表支持任意的嵌套,嵌套的层次深度没有限制

 

总结:列表是一个Python的数据结构,用[] 来表示,可以存储任何对象的一个有序序列

 

作用:存放各种类型的数据,并有序排列

定义:
a = list()
a
[]
b = []
b
[]
c = list('c')
c
['c']

列表的切片和索引
切片
标识:冒号,有冒号是切片的象征
方法:通过坐标去辨识

a = [1,'a','123',{1:2}]
a[0:4]
[1, 'a', '123', {1: 2}]
a[:4]
[1, 'a', '123', {1: 2}]
a[0:]
[1, 'a', '123', {1: 2}]
a[:]
[1, 'a', '123', {1: 2}]
a[:-1]
[1, 'a', '123']

索引:标识着列表中从0开始的第几项
a
[1, 'a', '123', {1: 2}]
a[0]
1

 

列表方法
1、增
append:往列表中添加元素,该元素可以是任何形式的数据结构或者对象,添加的对象作为列表中的一个元素,放到最后一位

a = ['1']
a.append('1')
a
['1', '1']
a.append(['2'])
a
['1', '1', ['2']]
a.append({1:2})
a
['1', '1', ['2'], {1: 2}]

extend:用于在列表末尾一次性追加另一个序列中的多个值,不是把对象完整的添加,而是把其中每一项拿出来

注意:有的说extend只能是列表,这种说法不对,可以是序列式的数据结构
a = []
b = ['1']
a.extend(b)
a
['1']
a.extend(a)
a
['1', '1']
a.extend('m')
a
['1', '1', 'm']
a.extend((1,2))
a
['1', '1', 'm', 1, 2]
a.extend([9,'c'])
a
['1', '1', 'm', 1, 2, 9, 'c']


extend和append区别
a = ['1']
b,c = [],[]
b.append(a)
b
[['1']]
c.extend(a)
c
['1']

append:把整体添加进来
extend:把每一项添加进来


insert:两个参数,一个是insert的位置,第二个是insert的元素
a = ['s',3,4]
a.insert(2,'x')
a
['s', 3, 'x', 4]
a.insert(2,'y')
a
['s', 3, 'y', 'x', 4]


删
remove:该方法没有返回值但是会移除两种中的第一个匹配项
a = [1,2,3]
a.remove(2)
a
[1, 3]


pop:从列表移除并返回移除的元素,默认移除最后一个,如果指定第几个,便移除第几个
a = ['d','s','j']
a.pop(1)
's'
a
['d', 'j']
a.pop()
'j'
a
['d']

知识扩展
堆栈:先进后出,通过pop()实现
队列:先进先出,通过pop(0)实现

改
a = [1,2,3]
a[1]=9
a
[1, 9, 3]

查
1、索引
2、通过index去进行查询
3、count计算列表中元素的数量
a
[1, 9, 3]
a.index(3)
2
a.append(9)
a
[1, 9, 3, 9]
a.count(9)
2
a.index(9)
1
a.index(9)
1

 

列表的排序
sort:列表本身排序
a = [1,4,2,4]
a.sort()
a
[1, 2, 4, 4]

a.sort(reverse=True)
a
[4, 4, 2, 1]
sorted(a)
[1, 2, 4, 4]
a
[4, 4, 2, 1]

sort与sorted区别
1、sort是列表方法,sorted是内置函数对一个序列数据的方法
2、sort改变了列表本身,sorted不改变数据结构本身

反转
a
[4, 4, 2, 1]
a.reverse()
a
[1, 2, 4, 4]

列表循环(两种循环方式,非常重要)

for item in a :
    print item


for index,value in enumerate(a):
    print index.item

题目:对于列表a=[2, 8, 1, 33, 43, 9, 3],它的索引偶数项加1,输出新的列表

a = [2, 8, 1, 33, 43, 9, 3]

b = []

for item in a:
    if a.index(item) % 2 == 0:
        b.append(item + 1)
    else:
        b.append(item)
        
print(b)


a = [2, 8, 1, 33, 43, 9, 3]

b = []

for index,value in enumerate(a):
    if index % 2 == 0:
        b.append(value+1)
    else:
        b.append(value)

print(b)

 

 

 

 

列表推导式

格式: [表达式 for item1 in 序列1 ... for itemN in 序列N if 条件表达式]
作用: 一句话完成:在循环遍历中把满足某个条件的项取出来。

列出10以内的偶数
a = list(range(1,11))

s = [x for x in a if x % 2 == 0]
print(s)

 

posted @ 2018-03-11 20:20  厚德载物_VIP  阅读(498)  评论(0编辑  收藏  举报