LINUX.ORG.RU

сконвертировать строку в комплексное число

 


0

2

Есть файл с кучей таких:

-5.9212e+06-4.7907e+06i
строк. Надо просто распарсить их либо в массив комплексных чисел, либо два массива. Ширина каждого числа разная, может быть и так:
69192+96721i
.

Как такое распарсить??? Нужно из каждой такой строки, которая так разнообразно форматирована, получить по одному комплексному числу...

Ответ на: комментарий от theNamelessOne

А в Python нет готового решения для подобной записи чисел? Неужели нельзя такой просто загрузить?

I-Love-Microsoft ★★★★★
() автор топика

Мне кроме нескольких регекспов которые бы покрывали все случаи больше ничего в голову не пришло. Тебе надо разбить на пары и без всяких i, а Е-нотацию понимает float: float('4.7907e+06')

true_admin ★★★★★
()
for s in ('-5.9212e+06-4.7907e+06i', '69192+96721i'):
    print complex(s.replace('i', 'j'))

(-5921200-4790700j)
(69192+96721j)

omegatype ★★★
()
Ответ на: комментарий от true_admin

Мне кроме нескольких регекспов которые бы покрывали все случаи больше ничего в голову не пришло.

Там и одного с головой хватит.

theNamelessOne ★★★★★
()

Ну вообще есть тип complex:

>>> s = '-5.9212e+06-4.7907e+06i'
>>> cplx = complex(s.replace('i','j'))
>>> type(cplx)
<class 'complex'>

Log_in
()
Ответ на: комментарий от Log_in

omegatypeСпасибо обоим за s.replace('i','j')!

theNamelessOne - я так и знал что есть обходной путь, что такое может поддерживаться прямо на уровне языка, просто буквой ошибся (i вместо j)...

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

я так и знал что есть обходной путь, что такое может поддерживаться прямо на уровне языка

Если знал, что ж не поискал тогда? Хотя бы начал с того, как выглядят комплексные числа в питоне и чем они представлены. При таком подходе, кстати, и ЯП со временем незаметно учится.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Я не правильно выразился - не знал, а предполагал и очень надеялся. Перед тем как создавать тему - интенсивное гугление, это правило хорошего тона. Но увы, ничего напрямую не нашлось.

I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.