我有几个格式为(10,12),(7,3)等的字符串,我想分成两个格式为string1 = 10,string2 = 12,string1 = 7,string 2 =的字符串3等我使用以下代码执行此操作:
uv = uu[1:-1] #remove brackets from 'uu'
uva = uv.split(",", 1)[1] #take the first string before the ',' split
uvb = uv.rsplit(",", 1)[-1] #take the first string in reverse after the ','
然而在上面的例子中,'uva'和'uvb'都会解析为','和'之后的字符串,不知道为什么。
谁能看到我做错了什么?我已经尝试了变量'uva'的一些变化,但我没有到达任何地方。
由于
答案 0 :(得分:2)
我想你只想:
uva, uvb = map(int, uv[1:-1].split(","))
例如:
>>> uv = "(10, 12)"
>>> uva, uvb = map(int, uv[1:-1].split(","))
>>> uva
10
>>> uvb
12
由于每个字符串中只有一个逗号","
,split
和rsplit
会得到相同的结果:["10", " 12"]
。您可以通过索引访问这些值:
["10", " 12"]
# ^ 0 ^ 1 (or -1)
(注意从零开始的索引以及使用负数索引从头算回)
或者像我上面所做的那样简单地打开包装。 map
使用int
将这两个值转换为整数。
答案 1 :(得分:1)
uva = uv.split(",", 1)[1] #take the first string before the ',' split
索引1
是第二个字符串,但您实际上并不需要执行此操作。
uva, uvb = uv.split(",")
根据此格式实际代表的内容(来自repr
的内容?),您可能会考虑使用ast.literal_eval
,这样可以获得整数元组。
答案 2 :(得分:1)
Python使用基于0的索引。你的意思是
uva = uv.split(",", 1)[0]