我正在检查字典中单词的切片部分是否在列表中,这样就可以知道字典值中以“;”结尾或最后一个的单词是否是基本形式的名词。你知道吗
我这里有代码:
dict = {"devotion": "andumus; pühendumust", "devotional": "vagasse",
"devour": "kugistama; alla neelama", "devoured": "neelatud"}
endings2 = ["es", "te", "de", "st", "el", "le", "lt", "ks", "ni", "na", "ta", "ga", "id"]
endings3 = ["sse", "tte"]
for k, v in sorted(dict.items()):
for x in v.split():
if ((x[-1:] == ';' or x == v.split()[-1])
and (x[-3:-1] not in endings2 and x[-4:-1] not in endings3
and x[-2:] not in endings2 and x[-3:] not in endings3)):
print(k, x)
它工作,但它是一种硬编码。我更愿意只使用一个列表作为案例/结尾。你知道吗
而不是
你可以用
要查看单词在列表中是否有结尾,可以去掉分号并在结尾处循环:
这样你就不必区别对待两个和三个字母的结尾。你知道吗
你问起Python。在我看来,使用python提供的特性是最具python风格的方法。你知道吗
^{}
所以它接受
tuple
,为什么不使用它:而不是在这里使用
any
和理解或手动循环。你知道吗但是还有另一个肾盂指南(
import this
)我说的是
你到底想做什么。这会比较你的
x
,它是v.split()[i]
和v.split()[-1]
?我认为这种情况至少值得一提。为什么检查它是否是整个字符串中的最后一个子字符串很重要?你知道吗这可能不是你想要的,但举一个“pythonic”方法的例子:
或:
相关问题 更多 >
编程相关推荐