2016-11-12 66 views
1

我必须阅读RINEX观测文件并与卫星信息进行比较。到目前为止,我读了一些数据。所以,我有一个嵌套列表。我必须用逗号分隔这个列表值,并在空格中放置'None'。清单是这样的;如何分隔嵌套列表中的列表值

oblst = [[' 22527689.086 7     -578290.975 7 -410051.96348 22527682.94948\n', 
      ' 20593906.672 7     -142315.266 7 -103992.19948 20593902.01648\n', 
      ' 22312367.273 6 22312363.496 9 -573672.801 6 -426591.952 9 22312363.52047\n', 
      ' 24649943.453 3     -696710.409 3 -499047.10745 24649943.55545\n', 
      ' 21574180.359 7     -440212.809 7 -323130.81248 21574175.09448\n', 
      ' 20159532.789 7      35621.205 7  26243.45049 20159527.23449\n', 
      ' 24435415.719 6 24435413.602 9 417737.346 6 319304.620 9 24435413.80147\n', 
      ' 23108319.461 5     344109.572 5 249072.03046 23108315.90646\n', 
      ' 21789481.414 7     326180.505 7 238895.05548 21789474.12548\n', 
      ' 21975436.727 7     277875.380 7 205734.181 8 21975443.121 8\n', 
      ' 19981973.117 9     -127270.254 9 -94211.274 9 19981980.414 9\n', 
      ' 21682862.406 6     242033.680 6 179454.101 8 21682869.020 8\n', 
      ' 20647552.734 7     -446216.926 7 -329944.882 9 20647562.945 9\n', 
      ' 23174371.141 6     -645644.090 6 -481288.202 8 23174379.656 8\n', 
      ' 21946454.047 6     420271.088 6 311362.996 8 21946462.590 8\n', 
      ' 21922170.063 8     -124733.763 8 -92183.249 9 21922177.883 9\n'], 
      [......],[......]] 

我想这样打印;

​​

最后,如果我打印oblst [0] [1],我想这样打印;

'22527689.086 7' 

我试着用for循环。这是我写的代码。

for lines in oblst: 
    result = [] 
    for line in lines: 
     for k in range(0, len(line)-1, 16): 
      numbers = line[k:k+16].strip() 
      result.append(numbers if numbers else None) 
    print result 

输出是这样的;这并不坏。

result = ['22527689.086 7', 'None', '-578290.975 7', '-410051.96348', '22527682.94948', 
      '20593906.672 7', 'None', '-142315.266 7', '-103992.19948', '20593902.01648', 
      '22312367.273 6', '22312363.496 9', '-573672.801 6', '-426591.952 9', '22312363.52047', 
      '24649943.453 3', 'None', '-696710.409 3',...][....]] 

但我打印结果[0]。它是每个列表的第一个值。索引设置为垂直。

22527689.086 7 
22524473.070 7 
22521257.078 7 
22518041.602 7 
22514825.805 7 
22511610.484 7 
     . 
     . 
     . 

我真的很感激你可以帮忙或者给我任何建议。 请给我帮助或任何建议。

+0

你能告诉你试过吗? [所以]不是代码写作服务:向我们展示一些努力,我们会帮助你。 – TemporalWolf

+0

但是我在最初的列表中看不到任何逗号。请更新您提供的示例。 –

+0

@anonymous,这是OPs请求的一部分,“我必须用逗号将这个列表值分开......” – davedwards

回答

0

结构有多严格?如果它非常严格,那么这里有一个将第一个项目转换为满足您需求的列表的示例。然而,这是非常脆弱:

>>> [s.strip() for s in ' None'.join(s.strip().split('     ')).split(' ')] 
['22527689.086 7', 'None', '-578290.975 7', '-410051.96348', '22527682.94948'] 

如果你想这回字符串转换与,当时的:

>>> ', '.join(s.strip() for s in ' None'.join(s.strip().split('     ')).split(' ')) 
'22527689.086 7, None, -578290.975 7, -410051.96348, 22527682.94948' 
+0

我真的很感谢你的帮助! – Justin