Поэтому у меня есть строка:Присвоить часть строки к переменной [Python]
[53,2]
И я хочу, чтобы отделить его так, чтобы:
x = 52
y = 2
Поэтому у меня есть строка:Присвоить часть строки к переменной [Python]
[53,2]
И я хочу, чтобы отделить его так, чтобы:
x = 52
y = 2
Вы называете это строкой, но синтаксис говорит, что это список; поэтому я отвечу на оба :).
Если это строка, вы можете сделать это список, выполнив:
data = "[53, 2]"
data_stripped = data.strip('[]') # remove '[' and ']'s from the ends
data_split = data.split(',') # split into a list containing each entry
data_final = [int(x) for x in data_split] # convert strings to ints
На данный момент data_final
содержит список [53, 2]
. Если начальное значение было список уже, вы можете пропустить этот код, и просто назначить его data_final
перед запуском следующего кода:
x, y = data_final
Вот оно! :)
EDIT:
Другой способ разобрать строку будет использовать json.loads
:
import json
data_str = '[53, 2]'
data = json.loads(data_str)
data
будет тогда список [53, 2]
. Тогда вы можете получить x
и y
точно так же, как и выше:
x, y = data
Благодаря _habnabit в IRC канале #python на FreeNode указывают на это. :)
Легко!
X, y = [53, 2]
Разве это не Python fun?
Если ваш объект на самом деле является строка, а не список, вы можете безопасно преобразовать его в список:
import ast
x, y = ast.literal_eval("[53, 2]")
Для тех, кто задается вопросом, 'ast.literal_eval()' безопасно использовать даже на ненадежном входе, в отличие от 'eval()'. НЕ используйте 'eval'! – Cyphase
В качестве альтернативы:
a=[53,2]
x=a[0]
y=a[1]
print(x,y)
53 2
Edit: К сожалению, неправильно ваш вопрос. Цифры - это строковые значения.
У вас есть '[53, 2]', или у вас есть '" [53, 2] "'? '[53, 2]' - это список, '" [53, 2] "' является строкой. – Cyphase
Вы прошли через [Tutorial] (https://docs.python.org/2/tutorial/index.html)? – wwii
Разделение '[53, 2]' на два его элемента 53 и 2 не будет производить 52 и 2. Возможно, вам понадобится математика, или, может быть, вопрос имеет ошибку в формулировке. Не могу сказать. – Paul