【发布时间】:2017-10-11 01:15:45
【问题描述】:
我有一个小问题。我正在尝试创建一个包含两列(ID 和坐标)的 csv,其中坐标列实际上是 4 个坐标的列表。这是我的代码:
North = 42.02
South = 32.40
West = -124.453125
East = -114.0985107421875
difference = (North-South)
divided = 10
splitsize = difference/divided
coordinates = []
ID = []
count = 0
while count < 10:
coordinates.append([West, South+(splitsize*(count+1)), East, South+(splitsize*(count))])
ID.append(count+1)
count += 1
现在我想将两个列表合二为一,所以当我导出它时,我有一个包含两列的 CSV。第一个是 ID,第二个是坐标。
1,[-124.453125, 33.362, -114.0985107421875, 32.4]
2,[-124.453125, 34.324, -114.0985107421875, 33.362]
按照我一直以来的做法,我一直将所有内容放在一行中,并将 ID 和坐标放在一个单元格中。
编辑 只是想澄清我在寻找什么: end result
EDIT2:解决方案 这就是我最终从Writing Python lists to columns in csv 做的事情
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
rows = zip(ID, coordinates)
for row in rows:
writer.writerow(row)
【问题讨论】:
-
你应该重命名你的常量
NORTH、SOUTH等。标题大小写是为Python中的类名保留的 -
你应该考虑使用
JSON,你不想将数据结构放入你的csvs -
另外,不要使用while循环:
for count in range(10)更容易 -
用独特的东西分隔列表...在 NLP 中,我们倾向于使用
|,因此列表列表[[a,b,c], [d,e,f], ...]可能为每个子列表中的每个元素用逗号分隔,并为每个元素用竖线分隔子列表...a,b,c|d,e,f|.... -
erip,我将如何进行管道分隔?