python3: заменить один из повторяющихся элементов жала в виде списка с другой строкой, как:

голоса
0

Есть несколько дублирующих пунктов srting в моем списке. Я хочу, чтобы изменить один из этих элементов с другой строкой элементом. Например:

a = ['b','c','d','b','b']

Я хочу изменить «B» с индексом 3 с «х»

a = ['b','c','d','x','b']

Задан 02/09/2018 в 05:16
источник пользователем
На других языках...                            


2 ответов

голоса
0

Читая ваши комментарии, похоже, не волнует, если все дубликаты будут заменены. Таким образом, вы могли бы сделать это в одной строке со следующим:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index+1] if c == i]) == 1 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','x']

Если вы действительно хотите только обновить 2-й экземпляр следующие работы в одной строке также:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index+1] if c == i]) != 2 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','b']
Ответил 02/09/2018 d 05:39
источник пользователем

голоса
0

В основном список операций:

  • a.pop(idx)(Появится пункт по индексу idx)
  • a.insert(idx, val)(Будет ли вставить значение valв позиции idx)

ПОКА, это действительно плохо определена проблема программирования, с большим количеством открытых вопросов:

  1. может ли дупликация происходить более чем в 2 раза?
  2. будет замена будет сделана только для 1-го пункта?
  3. будет замена быть сделана с постоянным характером, или, может быть последовательностью?

Пахнет домашние задания. Если это так, пожалуйста, сделайте это без StackOverflow ....

Ответил 02/09/2018 d 05:28
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more