如何 return None 用于 python 中的空数组?

how to return None for empty array in python?

我有一个包含两列的数据框。第一列包含一个整数,第二列包含多个项目的列表,也可以为空。 我想要 return 一个包含元组的列表,其中元组的第一部分是来自 col1 的整数,元组的第二部分是来自 col2 的整数,列出所有可能的结果。 输入:

    col1    col2
0   909101  [1396920, 3094857]
1   21095887    [8383568]
2   8383568 [21095887]
3   2408689 []

期望的输出:

[(909101, 1396920),
(909101, 3094857),
 (21095887, 8383568),
 (8383568, 21095887),
 (2408689, None)]

到目前为止,我有这些,但它只输出非空输入的元组。

[(df[col1][i],df[col2][i][j]) 
            for i in range(len(df))
            for j in range(len(df[col2][i]))]
[(909101, 1396920),
(909101, 3094857),
 (21095887, 8383568),
 (8383568, 21095887)]

一个快速而肮脏的修复,将第二个循环变成一个普通的 for-each 循环:

[(df[col1][i], x) 
            for i in range(len(df))
            for x in (df[col2][i] or [None])]