我正在尝试用 python 解析 csv 文件。当我尝试在每一行读取字符串中的每个字符时,它只会评估并打印出结束字符的结果。我不确定发生了什么。下面是代码。谢谢。
def assignment(s):
switcher = {
"N": "N",
"N": "Q",
"I" : "S",
"I" : "T",
"I" : "K",
"I" : "R",
"I" : "H",
"I" : "D",
"I" : "E"
}
return switcher.get(s, "H")
with open('sentence.csv', 'r') as csv_file:
csv_read = csv.reader(csv_file)
for line in csv_read:
i = 0
index = 0
aa = ""
a = ""
for index in range (len(line)):
a=assignment(line[index])
aa = aa + a
print(aa)
index +=1
print(index)
h = aa.count("H");
i = aa.count("I");
n = aa.count("N");
print(aa + " has" + "H= " + str(h) + "I=" + str(i) + "N=" + str(n))
++i
你有你的翻译表(字典)向后。你试图进行分类输入字符类型N
,I
或H
。
我已经颠倒了 dict 顺序,以便您可以正确查找内容,尽管如果您搜索 Python 翻译表,您可以做得更好。我还减少了您的代码,足以硬编码测试用例:
def assignment(s):
switcher = {
"N": "N",
"Q": "N",
"S": "I",
"T": "I",
"K": "I",
"R": "I",
"H": "I",
"D": "I",
"E": "I"
}
return switcher.get(s, "H")
csv_read = ["QWERTASDFGZXCVBYUIOPHJKLNM"]
for line in csv_read:
i = 0
index = 0
aa = ""
a = ""
for index in range (len(line)):
a=assignment(line[index])
aa = aa + a
print(aa)
index +=1
print(index)
h = aa.count("H");
i = aa.count("I");
n = aa.count("N");
print(aa + " has" + "H= " + str(h) + "I=" + str(i) + "N=" + str(n))
输出(仅最后一行):
25
NHIIIHIIHHHHHHHHHHHHIHIHNH
26
NHIIIHIIHHHHHHHHHHHHIHIHNH hasH= 17I=7N=2
我会让你从这里清理跟踪和格式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句