我可以拆分没有空格的输入吗?

时间:2015-01-15 02:56:28

标签: python string input split

我正在尝试使用python创建一个与扑克相关的程序。 当有人输入"9H"时,有没有办法将9H分开?

4 个答案:

答案 0 :(得分:6)

将字符串分解为单个字符的最简单方法是在其上调用list()

>>> list("9H")
['9', 'H']
>>>

这将迭代字符串并将其字符收集到新的列表对象中。

答案 1 :(得分:3)

您可以使用索引访问字符串中的每个字符,无需将输入转换为列表。如果它只有两个字符,您可以随时执行此操作:

card = '9H'
number, suit = card[0], card[1]

甚至更简单,我们可以解压缩字符串中的元素:

number, suit = card

现在number将包含字符串值'9'suit将等于'H'。但请注意边缘情况 - 我们如何处理'10S'等卡片?有点笨拙,但我们可以使用正则表达式,这将适用于卡的所有有效输入:

import re
card = '10S'
number, suit = re.findall(r'(\d+)(\D)', card)[0]

答案 2 :(得分:1)

将其转换为列表:

$ python
Python 2.7.8 (default, Oct 30 2014, 18:30:15)
>>> "example"[0]
'e'
>>> "example"[1]
'x'
>>> list("example")
['e', 'x', 'a', 'm', 'p', 'l', 'e']

答案 3 :(得分:0)

请注意,如果您期望输入10H而非TH,则所有这些答案都很可怕。在这种情况下,我会考虑从其余部分剥离最后一个标记(应该始终是代表套装的单个字符),而不是这样做。

your_input = "10H"
rank, suit = your_input[:-1], your_input[-1]

这也适用于更多“正常”输入:

rank, suit = "9H"[:-1], "9H"[-1]