【问题标题】:Python 3 list comprehension in list of lists to convert types用于转换类型的列表列表中的 Python 3 列表理解
【发布时间】:2023-03-20 04:25:01
【问题描述】:

考虑以下列表:

list1 = [['1.1', '1.2', '1.3'], ['2.1', '2.2', '2.3'], ...]

要理解字符串列表以将它们转换为可以使用的浮点数

list1[0] = [float(i) for i in list1[0]]

但我试图理解浮点数列表的尝试并没有奏效:

list1 = [[float(j) for j in list1[i]] for i in list1]

由于

TypeError:列表索引必须是整数或切片,而不是列表

有没有办法在不显式使用循环的情况下进行这种列表理解?

【问题讨论】:

  • list1 = [[float(j) for j in > list1[i] <] for i in list1]
  • 这是你的错误所在。
  • somelist 中 i 的语法实际上并没有给你索引 0,1,2,..,而是直接给你对象,在你的情况下,是内部列表。所以你应该直接使用 i 而不是 list1[i]
  • 在内部列表中使用名称 i 会让人感到困惑(你自己也弄糊涂了),因为它们是列表,但 i(和 j)往往用于索引

标签: python-3.x list loops list-comprehension


【解决方案1】:
[[float(j) for j in i] for i in list1]

会做的

【讨论】:

  • i 似乎是一个列表,但我不知道 fortan 在哪里声明它。
  • 在 python 中,您可以直接遍历列表中的项目。因此,当您说for i in list1 时,它将遍历存储在list1 中的任何对象,在这种情况下它们本身就是列表。
猜你喜欢
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
相关资源
最近更新 更多