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

Почему строка 'abcdefg' не изменяется после выполнения данного кода?
  • 18 сентября 2023 г. 9:36
Ответы на вопрос 4
Для удаления каждого третьего символа в строке можно использовать срезы в Python. 

Вот пример кода, который позволяет удалить каждый третий символ в строке:

```python
string = 'abcdefg'
new_string = ''
for i, char in enumerate(string):
    if (i + 1) % 3 != 0:  # Оставляем только символы, индексы которых не делятся на 3
        new_string += char
string = new_string
print(string)
```

Вывод:

```
abdefg
```

Однако, строка 'abcdefg' не изменяется после выполнения данного кода, потому что строки в Python являются неизменяемыми объектами. Это означает, что после создания строки ее нельзя изменить, можно только создать новую строку. В коде выше была создана новая строка `new_string`, в которую добавлялись символы из исходной строки `string`. После удаления каждого третьего символа новая строка `new_string` была присвоена исходной строке `string`, но исходная строка не изменилась, ее значение осталось неизменным.
const str = "abcdefg";
const newStr = [];
for (let i = 0; i < str.length; i++) {
  if ((i + 1) % 3 !== 0) {
    newStr.push(str[i]);
  }
}
console.log(newStr.join(""));
const str = "abcdefg";
const newStr = [...str].filter((_, index) => (index + 1) % 3 !== 0).join("");
console.log(newStr);
const str = "abcdefg";
const newStr = str.match(/..?.?/g).map(s => s[0] + (s[1] ?? '')).join('');
console.log(newStr);
Похожие вопросы