我正在嘗試在 python 中制作一個字串分析器。我以這個輸入為例:
toAnalyze= "Hello!!gyus-- lol\n"
作為輸出,我想要這樣的東西:
>Output: ['Hello', '!!', 'guys', '--', ' ', 'lol']
我希望每個 gropus 都按原始順序排序
我曾想過掃描原始字串中的所有字符,直到出現“\n”字符,我想出了這個解決方案:
toAnalyze= "Hello!!gyus-- lol\n"
final = ""
for char in toAnalyze:
if char != " \n\t" and char != " " and char != "\n" and char != "\n\t":
final = char
elif char == " " or char == "\n" or char == "\n\t" or char == " \n\t":
if not final.isalnum():
word= ""
thing = ""
for l in final:
if l.isalnum():
word = l
else:
thing = l
print("word: " word)
print("thing: " thing )
我目前的輸出是:
>Output: thing: !!-- word: Hellogyus lol
你有想法嗎?想要的輸出:
>Output: ['Hello', '!!', 'guys', '--', ' ', 'lol']
提前致謝,祝您有美好的一天
uj5u.com熱心網友回復:
我不是 python 人,但想幫助您入門。這是您可以嘗試改進的作業解決方案,使其變得更加pythonist:
toAnalyze= 'Hello!!gyus-- lol\n'
word = ''
separator = ''
tokens = []
for ch in toAnalyze:
if ch.isalnum():
word = ch
# we met the first character of a separator, so save a word
if not ch.isalnum() and word:
tokens.append(word)
word = ''
# 1. we met the first alphanumeric after a separator, so save the separator or
# 2. we met a new separator right after another one, also save the old separator
if ch.isalnum() and separator or separator and separator[-1] != ch:
tokens.append(separator)
separator = ''
if not ch.isalnum():
separator = ch
您的示例的輸出是:
['Hello', '!!', 'gyus', '--', ' ', 'lol']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/452159.html
