【python】入门指南:常用数据结构

Python内置了三种高级数据结构:list,tuple,dict

list:数组,相同类型的元素组成的数组

tuple:元组,相同类型的元素组成的数组,但是这里有限定条件(长度是固定的,并且值也是固定的,不能被改变)

dict:字典,k-v结构的

list数组

1,初始化和遍历list

#!/bin/python

a = [1, 2, 3]
print(a, type(a))

for i in a:
    print(a)

输出:

[1, 2, 3] <class 'list'>
[1, 2, 3]

2,list添加和删除元素

a = [1, 2, 3]
a.append(4)
print(a) # 1,2,3,4
a.insert(1, 11)
print(a) #1,11,2,3,4

解释:append是在末尾添加元素,insert(n, data)在下标n的位置添加data,原先下标n的元素依次往后移动1位

a = [1, 2, 3, 4]
a.pop()
print(a) # 1,2,3

a = [1, 2, 3, 4]
a.pop(1)
print(a) # 1,3,4

pop()默认将最后一个数值pop出来,pop(n)是将下标为n的位置元素pop出来(这里如果n大于最大下标,python会抛出异常out of range)

整个将list清空掉

a = [1, 2, 3]
del a
print(a)

这里会报错:a is not defined,表名del a这个操作不是仅仅清空a的元素,而且把a本身从程序中删除掉

3,查找元素(根据key和value来查找)

判断a是否包含某个key值,要使用:key <= len(a) - 1

a = [1, 2, 3, 4]
if 3 <= len(a) - 1:
    print('a[3] exist')

if 4 <= len(a) - 1:
    print('a[4] exist')
else:
    print("a[4] does not exist")

输出:

a[3] exist
a[4] does not exist

元素查找:a.count(value)

a = [1, 2, 3, 4]
print(a.count(1)) #1
print(a.count(5)) #0

count返回a中包含元素value的次数

元素查找:a.index(value)

a = [1, 2, 3, 4]
print(a.index(1)) #0
print(a.index(0))

index是返回value在a中所在的下标,如果value没在a中出现,则python抛出异常:{value} is not in list

4,更新某个key值

a = [1, 2, 3, 4]

if 3 <= len(a) - 1:
    a[3] = 100
else:
    print("a[3] does not exist")

print(a, len(a)) #1,2,3,100

更新某个key的value需要根据下标来更新,但是必须确定该key是未越界的,即不能大于len(a) - 1

5,切片

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

print(a[:]) #[1, 2, 3, 4, 5]

print(a[1:2]) #[2]
print(a[1:-1]) #[2,3,4]
print(a[1:0]) #[]
print(a[1:]) #[2,3,4,5]

print(a[:2]) #[1,2]
print(a[:-1]) #[1,2,3,4]
print(a[:0]) #[]

print(a[-3:]) #[3,4,5]
print(a[-3:-1]) #[3,4]
print(a[-3:0]) #[]

理解:a[n:m],从下标为n的元素开始从左往右数,数到下标为m-1的元素停止

理解n或者m为负值,则他实际计算时遵循的公式是:len(a) + n或者len(a) + m

比如a=[1,2,3,4,5], a[-1:]此处n为-1,实际开始下标为:len(a) + n = 5 + n = 5 - 1 = 4

6,其它相关函数

辅助函数1:enumerate

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

for i, v in enumerate(a):
    print(i, v)

辅助函数2:count(计算list中包含某个元素的次数)

辅助函数:排序相关,sort,reverse

关于list的更详尽的内容参考:http://www.runoob.com/python/python-lists.html

猜你喜欢

转载自www.cnblogs.com/helww/p/9821753.html