代码之家  ›  专栏  ›  技术社区  ›  Javiss

如何更改列表中的元素[重复]

  •  -2
  • Javiss  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我有以下结构:

    list_of_tuples = [['portugal', np.nan, 'japan'], [np.nan, 'germany', 'canada'], ['UK', 'US', np.nan]] 
    

    我想更改numpy nan值 漏失值 返回到元组列表:

    final_structure = [('portugal', 'MissingValue', 'japan'), ('MissingValue', 'germany', 'canada'), ('UK', 'US', 'MissingValue')] 
    

    如何在给定条件的情况下替换元素而不遍历所有元素?有什么单独的声明吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Kefeng91    6 年前

    final_structure = [ tuple([ j if isinstance(j, str) else "MissingValue" for j in l ]) for l in list_of_tuples ]
    

    np.nan "MissingValue" isinstance()

        2
  •  1
  •   Rakesh    6 年前

    import numpy as np
    
    list_of_tuples = [['portugal', np.nan, 'japan'], [np.nan, 'germany', 'canada'], ['UK', 'US', np.nan]]
    list_of_tuples = map(lambda x: tuple(["MissingValue" if i is np.nan else i for i in x]), list_of_tuples)
    print(list_of_tuples)
    

    [('portugal', 'MissingValue', 'japan'), ('MissingValue', 'germany', 'canada'), ('UK', 'US', 'MissingValue')]