我需要在字符串中提取两个数字。它们看起来像这样:
(0,0)
(122,158)
(1,22)
(883,8)
etc...
所以我希望得到逗号之前的第一个数字和逗号之后的数字并将它们存储在变量中。我可以得到第一个这样的数字:
myString.split(',')[0][1:])
但是,我无法弄清楚如何获得下一个数字。
感谢大家的帮助!
答案 0 :(得分:2)
它应该与
类似myVar.split(',')[0][1:] # = 122 for the string in the second line
myVar.split(',')[1][:-1] # = 158 for the string in the second line
这应该是最简单的方法
答案 1 :(得分:2)
您可以删除括号,拆分字符串,并将每个项目转换为int:
a, b = [int(x) for x in s[1:-1].split(',')]
当然,如果您完全确定关于字符串的格式,并且不关心安全性,那么您只需eval
字符串:
a, b = eval(s)
答案 2 :(得分:2)
您可以使用ast.literal_eval()将字符串转换为元组。这也将关注额外的空格,如'( 123, 158)'
。
>>> from ast import literal_eval
>>> tup = literal_eval('(122,158)')
>>> tup[0]
122
>>> tup[1]
158
或者只是:
>>> first, second = literal_eval('(122,158)')
答案 3 :(得分:1)
多重赋值,stripping括号和分割将执行:
a, b = myString.lstrip('(').rstrip(')').split(',')
# a, b = map(int, (a, b))
答案 4 :(得分:1)
myVar.split(',')[1][:-1])
会得到第二个号码
答案 5 :(得分:1)
最简单的单行
a, b = (myString[1:-1].split(',')[0], myString[1:-1].split(',')[1])
删除括号,然后以逗号分隔。