当字符与Python之前的字符不同时拆分字符串

时间:2017-09-13 10:27:30

标签: python python-3.x

当K位置的字符与K-1

不同时,我想分割从用户处取的字符串

然而,我遇到了一些困难。

这是我到目前为止所做的:

UserInput = input("hi enter a string:")

Groups = []

for x in range(len(UserInput)):
    if (UserInput[x] != UserInput[x-1]):
        print(UserInput[x])

如果你不明白我想要的是一个例子: 假设用户输入:b444Mrr - <<<<] 0 我想在屏幕上输出:b,444,M,rr, - ,<<<,],0

2 个答案:

答案 0 :(得分:3)

您可以使用 itertools.groupby() ,观察:

import itertools

user_input = input("Please enter a string:")
groups = []

for _, group in itertools.groupby(user_input):
  groups.append(''.join(group))

print('Here is that string split when a character changes: %s' % ', '.join(groups))

给定示例的示例用法:

Please enter a string: b444Mrr--<<<]0
Here is that string split when a character changes: b, 444, M, rr, --, <<<, ], 0

NB 在Python中使用snake_case而不是TitleCase(您在尝试中做的事情)或camelCase

答案 1 :(得分:1)

你可以使用每个字符的unicode值不同的逻辑,并且可以用于不同字符的比较,如下面的代码: -

inp=input("Enter String ")

prev=ord(inp[0])
str1=inp[0]
str=inp[1:]
for i in str:
    curr=ord(i)
    if prev==curr:
        str1=str1+i
    elif prev!=curr:
        print(str1)
        prev=curr
        str1=""
        str1=i        
print(str1)

示例: -

Enter String b444Mrr--<<<]0
b 444 M rr -- <<< ] 0