Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/55: Рейтинг темы: голосов - 55, средняя оценка - 4.98
23 / 21 / 3
Регистрация: 27.10.2017
Сообщений: 192

Заменить символы

11.04.2019, 17:54. Показов 10522. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется строка
AAAACCCGGT
В данной строке нужно заменить символ А на символ Т, символ Т на символ А
Также символ С заменить на G, а символ G на символ С
и вывести строку
Выходные данные: TTTTGGGCCA
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string = 'AAAACCCGGT'
string2 = []
for i in string:
    if i == 'A':
        i= i.replace('A', 'T')
        string2.append(i)
    elif i == 'T':
        i = i.replace('T', 'A')
        string2.append(i)
    elif i == 'G':
        i = i.replace('G', 'C')
        string2.append(i)
    elif i == 'C':
        i = i.replace('C', 'G')
        string2.append(i)
string2 = list(reversed(string2))
string2 = ''.join(string2)
print(string2)
Сделал подобное таким образом, вопрос, может есть какой-нибудь более легкий метом или более быстрый? Хотелось бы иметь больше вариантов, возможно можно обойтись без списков, тогда как?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2019, 17:54
Ответы с готовыми решениями:

Заменить все символы "в" строки текста на символы «111»
Заменить все символы "в" строки текста на символы «111».

Заменить символы в файле
У меня есть вопрос Как сделать так что бы программа прочитала файл и через реплейс(необязательно) меняла символы. К примеру ; меняла на...

Заменить символы в слов в списке
Здравствуйте! Всем доброго времени суток! Нужна помощь: Есть список taj_words со словами: taj_words = #Не удивляйтесь. Это...

11
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
11.04.2019, 18:25
А в чем сложность? Просто replace:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
 
if __name__ == "__main__":
    string = "AAAACCCGGT"
    string = string.replace('A', 'T')
    print(string)
    string = string.replace('T', 'A')
    print(string)
    string = string.replace('C', 'G')
    print(string)
    string = string.replace('G', 'C')
    print(string)
Добавлено через 2 минуты
P.S. К слову, таких выходных данных, как у вас, если следовать условию задачи, получиться не может.
0
23 / 21 / 3
Регистрация: 27.10.2017
Сообщений: 192
11.04.2019, 18:48  [ТС]
Цитата Сообщение от Yuri197 Посмотреть сообщение
К слову, таких выходных данных, как у вас, если следовать условию задачи, получиться не может.
У меня же получилось, если убрать реверсию, просто я спрашиваю вдруг можно как-то ещё
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.04.2019, 18:55
А зачем тут replace?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
s = 'AAAACCCGGT'
new_s = ''
 
for i in s:
  if i == 'A':
    new_s += 'T'
  elif i == 'C':
    new_s += 'G'
  elif i == 'G':
    new_s += 'C'
  else:
    new_s += 'A'
 
print(new_s)
 
#TTTTGGGCCA
0
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
11.04.2019, 19:06
У вас написано:
Цитата Сообщение от nikita55050505 Посмотреть сообщение
В данной строке нужно заменить символ А на символ Т, символ Т на символ А
Также символ С заменить на G, а символ G на символ С
Сокращаю:
Python
1
2
3
4
5
6
7
8
9
10
string = "AAAACCCGGT"
# Замена 'A' на 'T'
string = string.replace('A', 'T')
# Замена 'T' на 'A'
string = string.replace('T', 'A')
# Замена 'C' на 'G'
string = string.replace('C', 'G')
# Замена 'G' на 'C'
string = string.replace('G', 'C')
print(string)
Здесь пространства для ошибок нет, негде ошибаться.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.04.2019, 19:09
Yuri197, смотря, как замену делать...
0
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
11.04.2019, 19:09
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
А зачем тут replace
Так replace и выполняет замену подстроки в строке.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.04.2019, 19:11
Yuri197, с помощью replace такого результата не получить, Вы правы. Тут надо либо новую собирать (как я сделал), либо эту расширять и брать срез, но это дольше.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
11.04.2019, 19:52
А что, словари и map запрещены?
Python
1
2
3
s = "AAAACCCGGT"
d = {"A": "T", "T": "A", "C": "G", "G": "C"}
print(''.join(map(lambda x: d[x], s)))
0
23 / 21 / 3
Регистрация: 27.10.2017
Сообщений: 192
11.04.2019, 20:28  [ТС]
Цитата Сообщение от Black Fregat Посмотреть сообщение
А что, словари и map запрещены?
Пытаюсь понять ваш код через map но никак не пойму как это работает,
Python
1
2
3
4
5
6
7
8
9
s = "AAAACCCGGT"
d = {"A": "T", "T": "A", "C": "G", "G": "C"}
 
def func1(x):
    return d[x]
 
s1 =''
for item in s:
    s += func1(item)
Как убрать начальную часть чтобы записать новую? В вашем коде просто используется всё та же строка s
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
11.04.2019, 20:39
Цитата Сообщение от nikita55050505 Посмотреть сообщение
используется всё та же строка s
Не совсем. Строка s остаётся без изменения, она подаётся в map как параметр
Результатом map будет новая последовательность, полученная применением указанной функции к каждому элементу
Потом эта последовательность собирается в новую строку через join. Это происходит "на лету"
0
23 / 21 / 3
Регистрация: 27.10.2017
Сообщений: 192
11.04.2019, 20:42  [ТС]
Кажется понял, т.е. в map генерируется новая строка, допустим s1?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2019, 20:42
Помогаю со студенческими работами здесь

Как заменить символы в строке
мне нужно в строке сождержащей путь до файла в формате линукса например ..test/records/2020/10/12/ заменит символы / на символы пути...

Нужно заменить повторяющиеся символы в списке
У меня есть символы из которых случайно генерируется строка длинной 21 символ , я хочу сделать так, чтобы прога читала мою строку и каждый...

В строке заменить пробельные символы знаком звездочки
В строке заменить пробельные символы знаком звездочки ("*"). Если встречается подряд несколько пробелов, то их следует заменить одним...

Заменить символы строки после знака минус
Преобразовать строку, заменив в ней все символы, следующие за минусами числами «-7».

Строка: Найти все повторяющиеся символы и заменить их
День добрый! Подскажите, пожалуйста, как найти ВСЕ ПОВТОРЯЮЩИЕСЯ символы в строке и заменить их на то, что я хочу? На данный момент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru