# -*- coding: utf-8 -*-
a = [2, 3, "4", 7, "string", 1]
b = [5, 6, 8, 2, 7, 8]
for i in range(0, len(a)):
try:
if int(a[i]) > int(b[i]):
print("在第" + str(i) + "个位置上数组a大于数组b.")
elif int(a[i]) < int(b[i]):
print("在第" + str(i) + "个位置上数组a小于数组b.")
elif int(a[i]) == int(b[i]):
print("在第" + str(i) + "个位置上数组a等于数组b.")
except:
print("在第" + str(i) + "个位置上数组a或者数组b的元素不是数字.")
运行结果:
在第0个位置上数组a小于数组b.在第1个位置上数组a小于数组b.
在第2个位置上数组a小于数组b.
在第3个位置上数组a大于数组b.
在第4个位置上数组a或者数组b的元素不是数字.
在第5个位置上数组a小于数组b.
举个例子,先做减法再判断和0的大小a = np.array([[1,12,51,1],[1,2,3,4]])
b = np.array([[12,1,1,15],[5,4,3,2]])
c = a-b
c>0
结果c=array([[False, True, True, False],
[False, False, False, True]])
list类似于 Vector对象和指针数组是分开分配的,数组是在堆上。指针数组的大小是动态分配的,分配的内存肯定要多于实际的。既然是动态分配的,那么realloc调整大小就会移动数据,复制数据,大量数据还是用链表比较好。
dict类似于 Hash table
字典本身默认有元素容量,不够的才去堆上分配。需要扩容或者收缩,就会动态重新分配内存,重新hash。dict的keys()等调用生成list 如果数量很大,建议用迭代器。