笔记参考:up爱学习的饲养员(数组);up爱学习的饲养员(python常用操作)
-
数组:在连续的内存空间中,存储一组相同类型的元素。
-
数组的索引从0开始,索引代表对应元素相对于数组起始元素的位置。
-
数组的访问(Access):通过索引取得某个元素的值。时间复杂度为O(1)。
-
数组的搜索(Search):遍历数组,直接去找某个元素。时间复杂度为O(n)。
-
数组的插入(Insert):插入一个元素后,后面的元素依次后移。时间复杂度为O(n)。
-
数组的删除(Delete):删除一个元素后,后面的元素依次前移。时间复杂度为O(n)。
-
数组的特点:适合读,不适合写。“读多写少”的情况适合于数组。
-
常用操作:
'''创建数组'''
# use a list to create an array directly
a = [] # []
'''添加元素'''
# add at tail: a.append(val) O(1) or O(n)
a.append(1) # [1]
a.append(2) # [1,2]
# insert at middle: a.insert(index, val) O(n)
a.insert(1,99) # [1,99,2]
'''访问元素'''
# access element by index O(1)
t = a[1] #99
'''更新元素'''
# update O(1)
a[2] = 33 # [1,99,33]
'''删除元素'''
# a.remove(val) O(n)
a.remove(99) # [1,33]
# a.pop(index) O(n)
a.pop(0) # [33]
# a.pop() delete the last one only O(n)
a.pop() # []
'''遍历数组'''
a = [1,2,3]
# O(n)
for i in a:
print(i)
# O(n)
for index, element in enumerate(a):
print("Index ", index, "is: ", element)
# O(n)
for i in range(0, len(a)):
print("Index ", i, "is: ", a[i])
'''查找元素'''
# a.index(val) O(n)
index = a.index(2) # 1
'''数组长度'''
# len(array)
size = len(a) # 3
'''数组排序'''
# a.sort() O(nlogn)
a = [3,1,2]
a.sort() # 升序, [1,2,3]
a.sort(reverse=True) #降序, [3,2,1]