我从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
答案 0 :(得分: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)
答案 1 :(得分: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]
和一个使用地图做出相同的假设:
newWind = map(lambda x:x[0], Wind)
接受你的选择!
答案 2 :(得分:0)
语法错误的结果是因为您在不在函数中时尝试执行return语句。如果您只想打印Wind的内容,请使用print(Wind)
代替return Wind