将字符串的一部分分配给变量[Python]

时间:2015-08-08 23:35:59

标签: python string

所以我有字符串:

[53,2]

我想分开它,以便:

x = 52
y = 2

4 个答案:

答案 0 :(得分:2)

容易!

X, y = [53, 2]

Python不好玩吗?

如果您的对象实际上是字符串而不是列表,则可以安全地将其转换为列表:

import ast
x, y = ast.literal_eval("[53, 2]")

答案 1 :(得分:1)

你称它为字符串,但语法说它是一个列表;所以我会回答:)。

如果是字符串,您可以通过执行以下操作使其成为列表:

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

就是这样! :)

修改

解析字符串的另一种方法是使用json.loads

import json

data_str = '[53, 2]'

data = json.loads(data_str)

data将成为列表[53, 2]。然后,您可以采用与上述相同的方式获取xy

x, y = data

感谢FreeNode上的#python IRC频道中的_habnabit指出了这一点。 :)

答案 2 :(得分:0)

假设您有一个字符串而不是数组/列表,则需要replacesplit方法。

mystring="[53,2]"

x=str.split(mystring,",")[0].replace("[","")
y=str.split(mystring,",")[1].replace("]","")

答案 3 :(得分:0)

可替换地:

a=[53,2]

x=a[0]
y=a[1]

print(x,y)
53 2

修改抱歉,误解了您的问题。数字是字符串值。