我想将一个字符串拆分成单独的单个字符串,并将每个字符串保存在一个新变量中。这就是用例:
使用BC1 = input("BC1: ")
以下列格式直接输入用户:'17899792270101010000000000', '17899792270102010000000000', '17899792270103010000000000'
现在我想要每个数字 - 只需要一个变量中的数字:
a = 17899792270101010000000000
b = 17899792270102010000000000
c = 17899792270103010000000000
如何在python 3中实现?
遗憾的是,我无法为它创建合适的正则表达式,也无法将字符串部分保存在单独的变量中。我希望你们中的某个人可以帮助我。 提前谢谢!
答案 0 :(得分:1)
查看re
import re
input = "'17899792270101010000000000', '17899792270102010000000000', '17899792270103010000000000'"
matches = re.findall('(\d+)', input)
# matches = ['17899792270101010000000000', '17899792270102010000000000', '17899792270103010000000000']
a, b, c = re.findall('(\d+)', input)
# a = '17899792270101010000000000'
# b = '17899792270102010000000000'
# c = '17899792270103010000000000'
编辑:
如果您希望int
不是str
,则可以map(int, matches)
答案 1 :(得分:1)
如果我理解正确,这应该可以解决问题
BC1 = input("BC1: ")
numbers = [int(x.strip(' \'')) for x in BC1.split(',')]
现在你想要的数字是
numbers[0] == a # 17899792270101010000000000
numbers[1] == b # 17899792270102010000000000
numbers[2] == c # 17899792270103010000000000
split
函数会创建一个数字数组,但包含空格和引号。
["'17899792270101010000000000'", " '17899792270102010000000000'", " '17899792270103010000000000'"]
strip
函数删除了空格和引号
['17899792270101010000000000', '17899792270102010000000000', '17899792270103010000000000']
int
函数将字符串解析为整数(数字)
[17899792270101010000000000, 17899792270102010000000000, 17899792270103010000000000]
但是,这要求用户遵循您指定的格式。 Foryah's answer对不同的输入格式更加健壮。
答案 2 :(得分:0)
如果已经"格式"在输入端:
>>> BC1 = input("BC1: ")
BC1: '17899792270101010000000000', '17899792270102010000000000', '17899792270103010000000000'
>>> a=int(BC1[0])
>>> b=int(BC1[1])
>>> c=int(BC1[2])
>>> a
17899792270101010000000000
>>> b
17899792270102010000000000
>>> c
17899792270103010000000000