Python разделить строку на список с целыми числами, строками и десятичными знаками - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь разбить

dimensions = "M 0 0 C 65 1 130 1 194.6875 0 C 195 17 195 33 194.6875 50 C 130 49 65 49 0 50 C 0 33 0 17 0 0 z"

в форму списка, где, если бы я хотел получить 194.6875, я мог бы сделать

print(dimensions[8])

У меня проблемы с преобразованием его в список, так как там бывают нескольких типов.

Ответы [ 3 ]

1 голос
/ 20 июня 2020

Вы можете использовать метод .split () для строки и передать символ, который хотите разбить, например:

dimensions = "M 0 0 C 65 1 130 1 194.6875 0 C 195 17 195 33 194.6875 50 C 130 49 65 49 0 50 C 0 33 0 17 0 0 z"
listDimensions = dimensions.split(' ')
x = float(listDimensions[8])
print(x)

После этого происходит изменение типа данных элемент, который вы хотите, например str(), int() или float()

1 голос
/ 20 июня 2020

Вы можете разделить на пробел и преобразовать в float значения, не являющиеся алфавитными c строки

dimensions = "M 0 0 C 65 1 130 1 194.6875 0 C 195 17 195 33 194.6875 50 C 130 49 65 49 0 50 C 0 33 0 17 0 0 z"
values = [val if val.isalpha() else float(val) for val in dimensions.split(" ")]

print(values) # ['M', 0.0, 0.0, 'C', 65.0, 1.0, 130.0, 1.0, 194.6875, 0.0, 'C', 195.0, 17.0, 195.0, 33.0, 194.6875, 50.0, 'C', 130.0, 49.0, 65.0, 49.0, 0.0, 50.0, 'C', 0.0, 33.0, 0.0, 17.0, 0.0, 0.0, 'z']
print(values[8], type(values[8])) # 194.6875 <class 'float'>
1 голос
/ 20 июня 2020
dimensions = "M 0 0 C 65 1 130 1 194.6875 0 C 195 17 195 33 194.6875 50 C 130 49 65 49 0 50 C 0 33 0 17 0 0 z"
dimensions = dimensions.split(" ")
print(float(dimensions[8]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...