У меня есть список списков, каждый из которых содержит две части комплексного числа, например:
части = [[1, 2], [3, 4], [5, 6]]
Как мне преобразовать их в список комплексных чисел, как это?
munged = [1+2i, 3+4i, 5+6i]
В любом случае, вы вообще что-нибудь пробовали? С чем именно у вас проблемы? Учитывая part = [1,2]
, вы знаете, как составить комплексное число 1 + 2j
? Или что-то еще?
Это должно работать
parts = [[1, 2], [3, 4], [5, 6]]
complex_list = [complex(*x) for x in parts]
[(1+2j), (3+4j), (5+6j)]
Примечание. Каждое комплексное число будет сложным объектом (1+2j)
. Если вам нужно, чтобы это была строка '1+2j'
или '1+2i'
; использовать:
# f"{a}+{b}j" or f"{a}+{b}i"
complex_list = [f"{a}+{b}i" for a, b in parts]
['1+2i', '3+4i', '5+6i']
Спасибо, надеюсь, даунвотер увидит правку и исправит...
Отлично и невероятно быстро, спасибо! Я приму это как ответ, когда мне будет позволено.
К вашему сведению: (1+2j)
— это не кортеж. Скобки — это просто соглашение, которое Python использует при отображении комплексного числа.
tuple
только потому, что строковое представление заключено в круглые скобки. Посмотрите, что дает type(complex_list[0])
(спойлер: это не tuple
)
[complex(*t) for t in parts]
было бы чище для комплексных чисел, а если требуется строка, то вообще не нужно генерировать комплексное число, просто используйте [f"{a}+{b}i" for a, b in parts]
. Ни одно из решений не требует индексации.
@ddejohn и хорошие моменты Пранава, отредактировано
Это не массивы, это списки.