python 如何在嵌套的for循环中精确比较值

kxe2p93d  于 2023-11-15  发布在  Python
关注(0)|答案(1)|浏览(108)

我试图在一个嵌套的for循环中比较二维数组的值,在这种情况下,我似乎无法获得正确的关系操作。
所以我循环遍历二维数组,并将它的值与另一个一维数组中的值进行比较,这一天真的很有趣。

import numpy as np

packetsDb = np.empty((0,4))

head = [['AAA', 'BBB', 'CCC', 'DDD']]
packet1 = [[255, 256, 257, 258]]
packet2 = [[255, 256, 257, 259]]
test = [255, 256, 257, 259]

packetsDb = np.append(packetsDb, np.array(head), axis=0)
packetsDb = np.append(packetsDb, np.array(packet1), axis=0)
packetsDb = np.append(packetsDb, np.array(packet2), axis=0)

for x in packetsDb:
   for y in x:
       print(test[0], y, test[0] == y)

个字符

euoag5mw

euoag5mw1#

结果一开始确实是违反直觉的,但一旦你打印出类型,它就变得更清晰了:

for x in packetsDb:
    for y in x:
        print(test[0], y, test[0] == y, type(test[0]), type(y))

//Result
255 AAA False <class 'int'> <class 'numpy.str_'>
...

字符串
test[0]和y在打印时看起来相同,但实际上它们是不同的类型,因此比较结果为False。
当你将字符串列表附加到numpy-array中时,numpy确实将整个数组转换为str类型,包括能够表示新数据的整数。

相关问题