簡體   English   中英

當字符與Python之前的字符不同時拆分字符串

[英]Split a String when character is different to preceeding one in Python

當位置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

你可以使用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

注意在Python中使用snake_case而不是TitleCase (你在嘗試中做什么)或camelCase

你可以使用unicode值對每個char不同的邏輯,並且可以用於不同字符的比較,如下面的代碼: -

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM