当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
答案 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