Найти - Пользователи
Полная версия: Преобразование массива данных
Начало » Центр помощи » Преобразование массива данных
1
NAleshkin
Всем привет!
Помогите, пожалуйста, с задачей! Я новичок в Python, поэтому у меня решить не получается.
Задача такая:
Есть массив данных:
10*0.099 0.3729964 0.3723636 0.3717297 0.3710958 0.3704624 10*0.099
0.3730189 0.3723876 0.3717551 0.371122 0.3704891 0.3698573 0.3692272
10*0.099 0.3724056 0.3717746 0.3711427 0.3705108 0.3698795 0.3692496
0.3686219 10*0.099 0.3724174 0.3717883 0.371158 0.3705273 0.3698969
Его надо преобразовать, по сути, переписать в том же виде за исключением одного, значение которое пишется со знаком “*” должно “разворачивается”.
К примеру, 10*0.5 в новый массив должно записаться как 0.5 десять раз.
Самая проблема для меня это как “развернуть” значение, а с остольным я думаю справлюсь.
FishHook
s=['10*0.099', '0.3729964', '0.3723636', '0.3717297', '0.3710958', '0.3704624', '10*0.099']
temp=[map(float,x.split('*')) for x in s]
result=[]
for x in temp:
  if len(x)==1:
    result.append(x[0])
  else:
    result+= [x[1]]*int(x[0])
print result
NAleshkin
Вот СПАСИБО огромное!
py.user.next
>>> s = '10*0.099 0.3729964 0.3723636 0.3717297 0.3710958 0.3704624 10*0.099'
>>> res = []
>>> for i in s.split():
...     if '*' in i:
...         a, b = map(float, i.split('*'))
...         res.extend(int(a) * (b,))
...     else:
...         res.append(float(i))
... 
>>> res
[0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.3729964, 0.3723636, 0.3717297, 0.3710958, 0.3704624, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099]
>>>
то же самое, пояснее
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB