Как разделить строку на отдельные элементы и сохранить их в списке в Python?

Как преобразовать данную строку в список, наподобие [[1, 2, 4, 5], [5, 6, 7, 8]], используя символы '(', ',', ')'. Я слышал, что это возможно сделать с помощью метода split, но не уверен, как именно справиться с различными символами.
  • 17 августа 2024 г. 15:33
Ответы на вопрос 2
Для разделения строки на отдельные элементы и сохранения их в списке в Python можно воспользоваться методом split(). Например, если у нас есть строка "1 2 3 4 5", мы можем разделить ее по пробелам следующим образом:

```python
s = "1 2 3 4 5"
my_list = s.split()
print(my_list)
```

Этот код выведет:

```
['1', '2', '3', '4', '5']
```

Чтобы преобразовать строку в список в виде [[1, 2, 4, 5], [5, 6, 7, 8]] используя символы '(', ',', ')', можно сначала разделить строку по символу ',' для получения подстрок, затем для каждой подстроки разделить ее по пробелам. Вот пример кода:

```python
s = "(1, 2, 4, 5), (5, 6, 7, 8)"
my_list = [list(map(int, x.split(', ')) for x in s.split('), ')]
print(my_list)
```

Этот код выведет:

```
[[1, 2, 4, 5], [5, 6, 7, 8]]
```

Таким образом, вы можете разделить строку на отдельные элементы и сохранить их в список в Python, а также преобразовать строку в список с заданной структурой, используя различные символы.
С таким форматом данных регулярки придется использовать <br/> тип так <br/> <pre><code class="python">PyDev console: starting.
Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
a = ['[&lt;rect(32, 16, 20, 20)&gt;, &lt;rect(48, 210, 20, 20)&gt;, &lt;rect(232, 178, 20, 20)&gt;, &lt;rect(362, 136, 20, 20)&gt;, &lt;rect(264, 183, 20, 20)&gt;, &lt;rect(144, 262, 20, 20)&gt;, &lt;rect(359, 140, 20, 20)&gt;, &lt;rect(287, 147, 20, 20)&gt;, &lt;rect(122, 266, 20, 20)&gt;, &lt;rect(368, 78, 20, 20)&gt;, &lt;rect(87, 32, 20, 20)&gt;, &lt;rect(46, 334, 20, 20)&gt;, &lt;rect(36, 4, 20, 20)&gt;, &lt;rect(129, 266, 20, 20)&gt;, &lt;rect(95, 72, 20, 20)&gt;, &lt;rect(211, 369, 20, 20)&gt;, &lt;rect(108, 379, 20, 20)&gt;, &lt;rect(277, 337, 20, 20)&gt;, &lt;rect(22, 262, 20, 20)&gt;, &lt;rect(212, 368, 20, 20)&gt;]']


import re

rr = re.compile(r'&lt;rect\((\d+), (\d+), (\d+), (\d+)\)&gt;')
rr.findall(a[0])
[('32', '16', '20', '20'), ('48', '210', '20', '20'), ('232', '178', '20', '20'), ('362', '136', '20', '20'), ('264', '183', '20', '20'), ('144', '262', '20', '20'), ('359', '140', '20', '20'), ('287', '147', '20', '20'), ('122', '266', '20', '20'), ('368', '78', '20', '20'), ('87', '32', '20', '20'), ('46', '334', '20', '20'), ('36', '4', '20', '20'), ('129', '266', '20', '20'), ('95', '72', '20', '20'), ('211', '369', '20', '20'), ('108', '379', '20', '20'), ('277', '337', '20', '20'), ('22', '262', '20', '20'), ('212', '368', '20', '20')]</code></pre>
Похожие вопросы