拆分一串数字

时间:2016-03-06 20:27:28

标签: python string split

我想知道我如何分配这个字符串以用于我分配的游戏。玩家应该为60x15网格输入x和y值。

answer = input('enter an x and y coordinate with a space between')

生病使我的x等于30而我的y等于7

playerAnswer = []
answer = '30 7'
answer.split(' ')
playerAnswer.append((player[0], player[1]))

当我这样做时,我playerAnswer['3', '0'] 有没有办法让playerAnswer成为['30', '0']

3 个答案:

答案 0 :(得分:1)

问题是您没有使用split的返回值。 str.split不会修改字符串(字符串实际上是不可变的),但返回列表。

演示:

>>> answer = '30 7'
>>> answer_split = answer.split(' ')
>>> answer
'30 7'
>>> answer_split
['30', '7']
>>> answer_split[0]
'30'
>>> answer_split[1]
'7'

如果你想要实际的整数,你可以这样做:

>>> answer_split = [int(x) for x in answer.split(' ')]
>>> answer_split
[30, 7]

我不确定为什么在追加player时索引split而不是playerAnswer的结果,这可能是另一个错误。

注意:如果您只想按任何空格拆分,可以省略' 'split的参数。

答案 1 :(得分:0)

a, b = [int(i) for i in answer.split()]
>>> a
30
>>> b
7

或者,如果你真的想要文字:

playerAnswer = []
playerAnswer.append(tuple(i for i in answer.split()))

>>> playerAnswer
[('30', '9')]

答案 2 :(得分:0)

实现这一目标的大多数pythonic方法是:

>>> x, y = map(int, input('enter an x and y coordinate with a space between').split())
>>> x
30
>>> y
7 

现在您的代码出现了问题:

playerAnswer.append((player[0], player[1]))

player替换为answer因为您将分割的值存储在answer变量中(我在您提到的代码中也看不到任何player变量,所以我我不知道它存储的是什么。但我相信你不需要它。下面的行应该可以正常工作。

playerAnswer.append((answer[0], answer[1]))

此外,我认为您不需要307作为str。要将其转换为int,我使用map()函数。