gpt4 book ai didi

python - 在python循环中退一步进一步

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:26 25 4
gpt4 key购买 nike

我需要在包含法语单词的列表中循环并找到一个星号,因为每次出现星号时我都想连接星号之前的单词和星号之后的单词并继续下一个。例如,在序列中:

['les','engage', '*', 'ment', 'de','la'] 

我想连接“engage”和“ment”,输出(engagement)应该由字典检查。如果在字典中,则追加到列表中。

在我的代码中,我只得到星号:

import nltk
from nltk.tokenize import word_tokenize
import re


with open ('text-test.txt') as tx:
text =word_tokenize(tx.read().lower())



with open ('Fr-dictionary.txt') as fr:
dic = word_tokenize(fr.read().lower())


ast=re.compile(r'[\*]+')
regex=list(filter(ast.match,text))

valid_words=[]
invalid_words=[]

last = None
for w in text:
if w in regex:
last=w
a=last + w[+1]
break
if a in dic:
valid_words.append(a)
else:
continue

最佳答案

与其考虑“时间旅行”(即来回走动),Pythonic 的方式是考虑功能性(时间旅行在资源非常受限的环境中占有一席之地)。

一种方法是采用@Yosufsn 所示的枚举方式。另一种方法是将列表自身zip,但在两侧附加填充。像这样:

words = ['les','engage', '*', 'ment', 'de','la'] 
for a,b,c in zip([None]*2+words, [None]+words+[None], words+[None]*2):
if b == '*':
print( a+c )

关于python - 在python循环中退一步进一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55196135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com