Python将单个单词按字母顺序排序+;列中相应的翻译
因此,这是一个非常好的剧本,作为开场白送给我:Python将单个单词按字母顺序排序+;列中相应的翻译,python,Python,因此,这是一个非常好的剧本,作为开场白送给我: #!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import with_statement # needed for Python 2.5 from itertools import chain def chunk(s): """Split a string on whitespace or hyphens""&qu
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import with_statement # needed for Python 2.5
from itertools import chain
def chunk(s):
"""Split a string on whitespace or hyphens"""
return chain(*(c.split("-") for c in s.split()))
def process(latin, gloss, trans):
chunks = zip(chunk(latin), chunk(gloss))
# now you have to DO SOMETHING with the chunks!
def main():
with open("examples.txt") as inf:
try:
while True:
latin = inf.next().strip()
gloss = inf.next().strip()
trans = inf.next().strip()
process(latin, gloss, trans)
inf.next() # skip blank line
except StopIteration:
# reached end of file
pass
if __name__=="__main__":
main()
但是,
我刚刚和我的讲师谈过,他告诉我他不希望我们使用
__ x __
功能,因为它“在课程的这一点上对于学生的需求来说过于先进”。
我完全不知道我需要在“块”或“过程”字段中输入什么,到目前为止,我已经能够计算出大多数其他练习(有一些提示),但这一个远远超出了我的理解范围。这个特别的部分值20分中的15分,这让我觉得有点恶心!
任何进一步的帮助都将不胜感激
原创帖子(抱歉这么长!) 我试着做到以下几点:我有一个非英语的文本,用连字符分成语素(每个单词的一部分),用英语光泽(每个语素的语言翻译)和下面的直接翻译。例如 意大利语是fat-o profug us Lavini-a-que venit 意大利Fem:Sg:Acc命运Neut:Sg:Abl逃离Masc:Sg:Nom Lavinian Neut:Pl:Acc来:性能-3-Sg:INDI:Act “在命运的驱使下,他们来到了意大利和拉维尼亚海岸” 我将在一个文件中包含多个文本,如上述文本-即
blank line
a line of latin broken up with hyphens
a line of gloss broken up with corresponding hyphens, using colons to join elements
a line of translation
blank line
latin
gloss
translation
ad infinitum.
我需要做的是编写一个文件,提供以下输出:
Itali: 1 Italy
am: 1 Fem:Sg:Acc
fat: 1 fate
o: 1 Neut:Sg:Abl
profug: 1 fleeing
us: 1 Masc:Sg:Nom
Lavini: 1 Lavinian
a: 1 Neug:Pl:Acc
que: 1 come:Perf
ven: 1 3
it: 1 Sg:Indic:Act
其中,第一列表示不带连字符的第一行文本;第二列表示出现的次数(在本例中,每列仅1次),第三列是第一列的英文翻译,如文本所示
如果有一个拉丁语素没有相应的英语光泽/翻译,拉丁栏将正常,但英语栏将打印[未知],如:
a: 1 [unknown]
如果相反,即没有相应拉丁语的英语语素,则应打印
[unknown]: 1 kitten
最后,prog需要能够处理同音语素(即两个拼写相同、含义不同的拉丁语素)。e、 g
每当你需要计算发生次数时,你都需要一个口述记录 创建一个字典,其中键是zip生成的元组,值是一个列表,其中包含:[拉丁语、金额、翻译]。每次遇到相同的元组时,都会增加数量 字典必须比函数寿命长,因此您可能希望将其添加为参数 完成后,您可以执行以下操作:result=dict.keys();result.sort()
我不确定我是否理解未知的部分。如果这不能解决该部分问题,则可能需要显示一个相关示例。类似于此的函数:/\uuu name\uuuu(但不带/)
a: 16 Neuter:Plural
a: 28 Feminine:Singular