【问题标题】:convert arrays to python list of lists将数组转换为 python 列表列表
【发布时间】:2019-01-23 13:53:07
【问题描述】:

python 新手,搞不懂:

我正在将数据从云数据仓库导入 Python。这是生成的数据结构:

[('A,B',),
 ('A',),
 ('A,B,C',)]

如何将数据转换成这种格式:

[['A','B'],
 ['A'],
 ['A','B','C']]

【问题讨论】:

  • [list(x[0].replace(',','')) for x in lst]... 虽然这感觉像是你不应该做的那种转换(就像应该有更好的方法来检索/解析数据)
  • [i[0].split(',') for i in L]
  • 这看起来像是给了您一个 CSV 文件并对其进行了错误的解析,现在您想要重新组织您错误解析的内容,而不是一开始就正确解析它。请向我们展示您用于获取此数据结构的代码,我们可能应该您应该如何修复该代码。

标签: python arrays list dataframe


【解决方案1】:

这一个班轮可以解决你的问题:

data = [('A,B',), ('A',), ('A,B,C',)]

final_data = [list(list(item)[0].split(',')) for item in data]
print(final_data)

【讨论】:

    【解决方案2】:

    我建议您使用以下方式使用列表推导来迭代列表和每个元组:

    my_list = [('A,B',), ('A',), ('A,B,C',)]
    
    new_list = [s.split(',') for t in my_list for s in t]
    
    print(new_list) # [['A', 'B'], ['A'], ['A', 'B', 'C']]
    

    如果每个元组的第一个元素总是有一个字符串,那么您还可以使用以下更短且更具可读性的字符串:

    new_list = [t[0].split(',') for t in my_list]
    

    留给解包运算符爱好者的最后一种可能:

    new_list = [str(*t).split(',') for t in my_list]
    

    【讨论】:

      【解决方案3】:

      my_list = [('A,B',), ('一种',), ('A,B,C',)]

      new_list = [list(items) for items in my_list]

      输出:

      [['A', 'B'], ['A'], ['A', 'B', 'C']]

      【讨论】:

      • 这是不正确的。没有应用字符串拆分或逗号替换。
      • 它不起作用:它给了[['A,B'], ['A'], ['A,B,C']]
      猜你喜欢
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 2019-03-12
      • 2021-03-22
      • 2012-06-13
      • 2011-09-23
      相关资源
      最近更新 更多