0

我从 CSV 文件生成了一个数据列表。它以列表中的列表格式出现:

Wind = [['284'], ['305'], ['335'], ['331'], ['318'], ['303'], ['294'], ['321'], ['324'], ['343']]

我需要列为常规列表。所以这是我解决这个问题的尝试:

i = 0
for ii in Wind:
    Wind[i] = Wind[i][i]
    i += 1
    return Wind

我的输出是:

return Wind
   ^
SyntaxError: 'return' outside function
4

3 回答 3

2

您想要展平列表,这可以在 python 中使用列表推导来完成(本质上是一个更短、更快的 for 循环版本)。

Wind = [x for y in Wind for x in y]

使用嵌套for循环的等效代码是:

newWind = []
for y in Wind:
    for x in y:
        newWind.append(x)
于 2013-08-12T04:05:38.710 回答
1

另一种选择,使用 itertools:

import itertools
newWind = list(itertools.chain.from_iterable(Wind))

另一个使用 numpy:

import numpy
newWind = numpy.array(Wind).transpose()[0].tolist()

一个使用列表推导,假设内部列表中总是只有一个元素:

newWind = [x[0] for x in Wind]

一个使用 map 做同样的假设:

newWind = map(lambda x:x[0], Wind)

任你选!

于 2013-08-12T04:34:29.867 回答
0

出现语法错误是因为您不在函数中时尝试执行 return 语句。如果您只想打印 Wind 的内容,请使用print(Wind)而不是return Wind

于 2013-08-12T04:04:15.547 回答