【问题标题】:Python-Read and convert the list as an array (2 columns x 6 lines)Python-读取列表并将其转换为数组(2 列 x 6 行)
【发布时间】:2015-12-26 05:18:33
【问题描述】:
onelist = [[3600,3600],[1000,10000],[30,90],[0,20],[20.00,95.00],["DEMO","DEMO"]]

目标:1 - 将上述列表写入文件。 2 - 读回来 3 - 让它在列表中相等2

【问题讨论】:

  • 一个列表。你的意思是列表列表吗? (实际上我认为它是一个字符串列表作为外部列表的唯一元素)
  • 这已经是一个字符串列表。你对结果有什么期望? stackoverflow.com/help/mcve
  • my_list = my_list[0]
  • Python 本身没有“数组”结构。您是否想将其转换为 NumPy ndarray?
  • 修正列表 = [[3600,3600],[1000,10000],[30,90],[0,20],[20.00,95.00],["DEMO","DEMO "]]

标签: python arrays list matrix


【解决方案1】:

您需要使用zip转置您的列表:

l = [[3600,3600],[1000,10000],[30,90],[0,20],[20.00,95.00],["DEMO","DEMO"]]

zipped = list(zip(*l)) # make rows into columns and columns into rows
print(zipped)
print(zipped[0])
print(zipped[1])

输出:

[(3600, 1000, 30, 0, 20.0, 'DEMO'), (3600, 10000, 90, 20, 95.0, 'DEMO')
(3600, 1000, 30, 0, 20.0, 'DEMO')
(3600, 10000, 90, 20, 95.0, 'DEMO')

如果你想要子列表而不是元组,你可以映射到列表:

 zipped = list(map(list,zip(*l)))

【讨论】:

    【解决方案2】:

    我找到了一个解决方案,可以按照我想要的方式回读: onelist = [[3600,3600],[1000,10000],[30,90],[0,20],[20.00,95.00],["DEMO","DEMO"]]]

    kl=list(onelist)

    然后使用双循环来分配变量 感谢您的帮助。

    【讨论】:

      【解决方案3】:
      import itertools
      
      my_list = [[3600,3600],[1000,10000],[30,90],[0,20],[20.00,95.00],["DEMO","DEMO"]]
      my_list = list(itertools.chain(*my_list))
      # [3600, 3600, 1000, 10000, 30, 90, 0, 20, 20.0, 95.0, 'DEMO', 'DEMO']
      

      【讨论】:

        猜你喜欢
        • 2020-04-23
        • 2019-08-08
        • 2019-07-08
        • 2019-01-23
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多