Форум сайта python.su
Всем привет!
Помогите, пожалуйста, с задачей! Я новичок в 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 десять раз.
Самая проблема для меня это как “развернуть” значение, а с остольным я думаю справлюсь.
Отредактировано NAleshkin (Авг. 20, 2012 09:12:15)
Прикреплённый файлы:
Array_read.txt (593 байта)
Офлайн
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
Офлайн
Вот СПАСИБО огромное!
Офлайн
>>> 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] >>>
Офлайн