Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 5

Записать условие: "если в списке возле 1 стоит 3, 3 становится 2"

31.05.2018, 20:58. Показов 1276. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как на языке Пайтона будет "звучать", если в списке возле 1 стоит 3, 3 становится 2?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2018, 20:58
Ответы с готовыми решениями:

Выполнить условие, если за звездочкой стоит цифра
while((t=strstr(t,"*0"))!=0 || (t=strstr(t,"*1"))!=0 || (t=strstr(t,"*2"))!=0 || (t=strstr(t,"*3"))!=0 || ...

Как сменить название кнопки, если условие стоит true/false
пусть меня засмеют, но начал писать в VB на VSE 2010 :) пока что набросал небольшую менюшку, да в трей помогли засунуть.... ...

Записать в таблицу число, если у CheckBox'a стоит галочка
Добрый день! Необходимо: если поставить галочку у CheckBox'а, то в таблицу должна записаться "1" в выделенную строку. Если...

10
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
31.05.2018, 22:28
Очень размывчато звучит. Что значит рядом - справа, слева, и справа, и слева, насколько рядом, непосредственно рядом (ака индексы элементов различаются на один)? Вот прочитайте свое задание - сами бы поняли, что нужно сделать?
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
01.06.2018, 02:32
Python
1
2
a = [1, 3, 4, 6, 3, 1, 1, 4, 1, 3, 3, 4, 3,1]
a = [2 if a[i] == 3 and ((a[i-1] == 1 and i > 0) or (a[i+1] == 1 and i < len(a)-1)) else a[i] for i in range(len(a))]
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
01.06.2018, 06:42
Python
1
[2 if e==3 and (a[i+1]==1 or a[i-1]==1) else e for i,e in enumerate(a)]
Добавлено через 2 минуты
хотя нет, последний элемент так взбрыкнет, а первый не правильно обработается.

Добавлено через 6 минут
Какую я жесть придумал
Python
1
list(''.join(map(str, a)).replace('13','12').replace('31', '21'))
Добавлено через 7 минут
еще монстра родил
Python
1
list(re.sub(r'((?<=1)3|3(?=1))', '2', ''.join(map(str, a))))
0
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 5
01.06.2018, 07:18  [ТС]
f=[1,2,3,3,3,3]

Рандом удаляет 1, если в списке нет 1, 2 заменяют 1. 1 не может стоять рядом с 3, по этому 3 заменяют 2.
Кликните здесь для просмотра всего текста
Ошибка "re is not defineded"
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
01.06.2018, 11:40
AndromGad,
Python
1
import re
1
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 5
01.06.2018, 17:18  [ТС]
Удаляет только "1"
В чем ошибка?
Python
1
2
3
4
5
6
7
8
9
10
import re
import time
import random
f=[1,2,3,3,3,3,3]
f.remove(1)
print(f)
time.sleep(2)
list(re.sub(r'((?<=1)3|3(?=1))', '2', ''.join(map(str, f))))
if f==[]:
    print('Empty')
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
01.06.2018, 19:40
Вы сначала удалили из листа единственную единицу, которая и так не стояла рядом с тройкой, а потом ищете где тройки стоят рядом с единицами.
Цитата Сообщение от AndromGad Посмотреть сообщение
Удаляет только "1". В чем ошибка?
ни в чем, все работает как и задумано. Если работает не как задумано, все же попробуйте рассказать нам о том, что подразумевалось в задании.
0
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 5
05.06.2018, 20:09  [ТС]
Есть список ( f=[1,2,3,3,3,3]) и программа удаляет "1", ждет две секунды, меняет "2" на "1" и "3", которая возле "1", меняет на "2" и в конце замены "печатает" список".
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
05.06.2018, 23:55
Лучший ответ Сообщение было отмечено AndromGad как решение

Решение

во-первых, remove(1) удаляет первое вхождение элемента, а не их все.
во-вторых,
Цитата Сообщение от AndromGad Посмотреть сообщение
меняет "2" на "1"
вот этой части у вас нет.

Python
1
2
f=[1,2,3,3,3,3,3,2,1]
print(list(re.sub(r'((?<=1)3|3(?=1))', '2', ''.join(map(str, [x for x in f if x!=1])).replace('2', '1'))))
1
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 5
07.06.2018, 08:46  [ТС]
Все. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2018, 08:46
Помогаю со студенческими работами здесь

Написать программу, которая в качестве результата дает истину, если выполняется заданное условие, или ложь, если условие
Написать программу, которая в качестве результата дает истину, если выполняется заданное условие, или ложь, если условие не выполняется:...

Как записать элемент списка std::list в DataGridView, если в списке находятся экземпляры класса
Нужно записать содержимое списка по колонкам таблицы. Обращаюсь к элементу через итератор. Пытаюсь записать каждое поле класса в...

Если после минимального элемента стоит элемент равный х, то записать в массив В элементы, которые равны х
Дан массив С(25) и число х. если после минимального элемента стоит элемент равный х, то записать в массив В элементы, которые равны х.

Условие if не становится истиным
Всем привет. Пишу свою первую программу-игру на с++ с использованием OpenGL. Ситуация такая: необходимо сравнить координаты по x и...

Как сделать, чтоб кнопка реагировала на то сообщение возле которого она стоит?
Всем добрый день! Помогите начинающему. Есть кнопка &lt;input type=image src=&quot;../comments/images/quote.png&quot; title=&quot;Ответить...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru