繁体   English   中英

在python中查找以希腊字母开头或结尾的字符串

[英]finding string that starts or ends with greek letters in python

我想找到一个以希腊字母开头或结尾的字符串。 我为此编写了一个python脚本,但未给出期望的结果。

greekletters = ["alpha", "beta", "gamma", "delta", "epsilon", "zata", "eta", "theta", "iota","kappa", "lambda", "mu", "nu", "xi", "omikron", "pi", "rho", "sigma", "tau", "upsilon", "phi","chi", "psi", "omega"]
gl=["-alpha", "-beta", "-gamma", "-delta", "-epsilon", "-zata", "-eta", "-theta", "-iota" "- kappa", "-lambda", "-mu", "-nu", "-xi", "-omikron", "-pi", "-rho", "-sigma", "-tau","-upsilon", "-phi", "-chi", "-psi", "-omega"]
file="C:/Python26/test.txt"
f=open("greekletters.txt",'w')
with open(file,'r') as rf:
    lines = rf.readlines();
    c=0
    for word in lines:
        if word.strip() in greekletters or word.startswith(tuple(greekletters)) or word.endswith(tuple(gl)):
##            f.write('1'"\n")
            f.write(word.strip("\n")+"\t"'1'"\n")
            c=c+1
        else:
##            f.write('0'"\n")
            f.write(word.strip("\n")+"\t"'0'"\n")
            c=c+1
    print c
    f.close()

读取文件后,您需要使用rstrip从行中rstrip'\\n' ),此外,如果要忽略开始和结束空格,可以直接使用strip

for line in lines:
    line = line.strip()
    tgreek = tuple(greekletters)
    if line in greekletters or line.startswith(tgreek) or line.endswith(tgreek):
        do something

应该管用。 如果您不提前从行尾删除换行符'\\n' ,则该句子将永远不会以希腊字母endswith 如果句子的开头或结尾都有空格,也会发生同样的情况。

如果您不想忽略空格,请替换为line = line.rstrip('\\n')

此外,如果您使用with打开文件,则无需close ,在with语句的末尾python自动为您完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM