2016-11-12 4 views
1

Мне нужно прочитать файл наблюдений RINEX и сравнить со спутниковой информацией. До сих пор я читал некоторые данные. Итак, у меня есть вложенный список. Мне нужно разделить эти значения списка запятыми и поместить «Нет» в пробелы. Список выглядит следующим образом;Как разделить значения списка во вложенном списке

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 = [['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', 
     ......],[...]] 

И наконец, если я печатаю область [0] [1], я хочу напечатать это;

'22527689.086 7' 

Я попытался использовать это для петли. Это то, что я написал код.

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

Можете ли вы показать, что вы пробовали? [so] не является службой написания кода: покажите нам немного усилий, и мы поможем вам. – 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

Смежные вопросы