hid = []
for counter,value in enumerate(alist):
    idx1 = np.where(attr['xval'].values == value[0])  #Find Serial index
    idx2 = np.where(attr['xval'].values == value[1])
    hid.append(idx1)
    hid.append(idx2)


这给了我这个hid

[(array([7467]),),
 (array([7473]),),
 (array([7403]),),
 (array([7410]),),
 (array([7386]),),
 (array([7409]),),
 (array([7380]),),
 (array([7439]),),]


我只想拥有这些值的列表/数组,并将1添加到每个值。

print(idx1[0])+1

Error: TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

有一个更好的方法吗?由于元组是不可变的,我该怎么做?

一个列表

[array([511, 517], dtype=int32),
 array([447, 454], dtype=int32),
 array([430, 453], dtype=int32),
 array([424, 483], dtype=int32)]

最佳答案



hid = [(array([7467]),),
       (array([7473]),),
       (array([7403]),),
       (array([7410]),),
       (array([7386]),),
       (array([7409]),),
       (array([7380]),),
       (array([7439]),)]


现在,每个元素都是一个列表,所以hid是列表的列表。如果这是您想要的,那没问题,但是如果您要将其转换为平面列表,请使用hid = np.array(hid).flatten(),以获得诸如hid = [7467, 7473, 7403, 7410, 7386, 7409, 7380, 7439]的平面数组。

要使用+1打印每个值,只需

hid_plus_one = tuple(np.array(hid)+1)
print(hid_plus_one)


要么

hid_plus_one = tuple(v+1 for v in hid)
print(hid_plus_one)


也就是说,如果您想将其作为元组,否则可以跳过tuple(..)部分

关于python - 如何在元组的每个元素上添加数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48816854/

10-12 19:22