Python消除数组问题的第一个单词
我用Python作为后端创建了一个小应用程序,并作为前端进行响应。我从前端收到一些数据,如果满足条件,我想删除我收到的文本的前20个单词Python消除数组问题的第一个单词,python,Python,我用Python作为后端创建了一个小应用程序,并作为前端进行响应。我从前端收到一些数据,如果满足条件,我想删除我收到的文本的前20个单词 @app.route("/translate", methods=["GET", "POST"]) def translate(): prompt = request.json["prompt"] max_tokens=50 prompt = re.sub(r"
@app.route("/translate", methods=["GET", "POST"])
def translate():
prompt = request.json["prompt"]
max_tokens=50
prompt = re.sub(r"^(?:.+?\b\s+?\b){20}", "", prompt)
response = translation_response(prompt)
return {'text': response}
如何将var提示符的前20个单词翻译成python代码
提前非常感谢……考虑空白是单词分词:
my_text_as_list = my_text.split()
my_new_text = ' '.join(my_text_as_list[20:])
考虑以下正则表达式:
^(?:.+?\b\s+?\b){20}
(解释:)。这将匹配前二十个单词,由任意数量的空格分隔,并从字符串开头开始。单词可以由除空格以外的任何字符组成。使用python的re.sub
将允许您删除前二十个单词:
import re
string = """one two three four\t five six seven eight nine ten eleven
twelve thirteen fourteen fifteen
sixteen seventeen
eighteen nineteen twenty twentyone twentytwo"""
string = re.sub(r"^(?:.+?\b\s+?\b){20}", "", string)
print(string)
此示例打印Twenty1 twentytwo
。正则表达式所做的是,从字符串开始(^
),匹配任何(+?
)直到下一个单词边界(\b
),然后在1和无穷大(\s+?
)之间的任何空白量,直到下一个单词开始(\b
)。(?:…){20}
使该操作重复20次。如果图案无法匹配,则不会删除任何内容。此外,正则表达式可能会给您带来两个问题,而不是一个问题,因此请小心
对评论的反应:
max_令牌=50
而len(string)>max_令牌:
match=re.match(r.“+?\b\s+?\b”,字符串)
如果不匹配:中断
nextpos=match.span()[1]
如果nextpos==-1:中断
string=string[nextpos:]
打印(字符串,len(字符串))
输出:1819202212122245
这将删除单词,直到只剩下一个单词,或者字符串长度小于或等于max_标记
如果要在此之前停止该单词:
while len(string)>max_令牌:
match=re.match(r.“+?\b\s+?\b”,字符串)
如果不匹配:中断
nextpos=match.span()[1]
如果len(string)-nextpos
输出:17\neighten 19221twenty55
如果要将单词减半:
while len(string)>max_令牌:
match=re.match(r.“+?\b\s+?\b”,字符串)
如果不匹配:中断
nextpos=match.span()[1]
如果nextpos==-1:中断
elif len(字符串)-下一个标记<最大标记:
nextpos=max_令牌-(len(字符串)-nextpos)
string=string[nextpos:]
打印(字符串,len(字符串))
输出:
teen\neighten一九二二一二十二二50
什么是prompt
变量的数据类型?使用len(prompt)
而不是prompt.length
。这是一种“str”类型,但我得到以下错误文件“C:\Users\mario\Desktop\Vs projects\backend+frontend\volt react dashboard\api\demo\web\u app.py”,第42行,在translate if len(提示符>20)中:TypeError:“str”和“int”实例之间不支持“>”单词边界是什么?单一空间?有空白吗?如果是一个空格,并且您知道提示有20多个单词:”.join(prompt.split()[20://code>),否则regex可能会更大appropiate@themadpsychologistmax_tokens=50
看起来像一个int,以获取以下错误文件“C:\Users\mario\Desktop\Vs projects\backend+frontend\volt react dashboard\api\demo\u web\u app.py”,第42行,在translate if len(提示>20)中:TypeError:“>”在“str”和“int”实例之间不受支持tryif len(提示)>20:
错误是因为您想检查提示符是否超过20,并且@maromarioni不可能。那么我们如何解决这个问题呢?试试if len(prompt)>20:
看看括号@maromarioniso我不需要if len(prompt)>20:条件?不,不再需要了。非常感谢。现在我想让他们不仅删除前20个字符,而且删除到len(提示)==max_tokens。我们该怎么办?@Marcomarinoi这并没有删除前20个字符,而是删除我理解的你在帖子中想要的前20个单词。如果你想删除前max_tokens
words,你可以用r^(?:+?\b\s+?\b){20}替换r^(?:+?\b\s+?\b){+str
如果我表达错误,我深表歉意。我希望删除出现的单词,直到满足len(prompt)==max\u tokens条件,并且不删除与max\u tokens值相等的单词数。