将字母转换为有值的数字

我是 Python 新手,我是堆栈论坛的新手,但我希望能在这里找到一些运气。


我在导入的列表中有一个包含字母 az 的文本文件。


一个



C


..


..


我想让数字有一个数值,所以当它打印时它会说类似


一 = 1


乙 = 2


c = 3 ..


..


我怎样才能使这项工作?


这就是我所想到的,但这只会打印 txt 文件。


f = open('alpha.txt', 'r')

file_contents = f.read()

print (file_contents)

f.close()


慕码人8056858
浏览 154回答 3
3回答

慕运维8079593

with open('alpha.txt') as f:    lines = list(enumerate((line for line in (l.strip() for l in f) if line),start = 1)) # also skip empty lines    for item in lines:        print ("{}={}".format(item[1],item[0]))输出:a=1b=2c=3或者:with open('alpha.txt') as f:    for line in enumerate(f,start = 1):        print("{}={}".format(line[1][0], line[0]))输出:a=1b=2c=3或者with open('test.txt') as f:   for idx, line in enumerate(f,start = 1):       print('{}={}'.format(line[0], idx))输出:a=1b=2c=3

侃侃无极

您可以通过调用ord()字符将字母转换为其数值。ord('a')将等于 97。如果你想偏移你的字符从 1 开始,你可以减去 96,或者你可以使用类似的东西offset = ord('a')-1来让它更有活力。import string # dont need to import for your versionletters = string.ascii_letters[:26] # lowercase letters for testingoffset = ord('a') - 1for letter in letters:输出:a = 1b = 2c = 3d = 4 等等。编辑:我的解决方案与其他解决方案的不同之处在于我实际上是将每个字母转换为其值。如果您只想在解决方案出现时对其进行编号,那么我的解决方案将是错误的。例如,如果给定letters =  ['b', 'c', 'a']我的解决方案将输出b  =  2c  =  3a  =  1其他发布的解决方案仍将编号字母b = 1c = 2a = 3

绝地无双

你也可以使用stringlib:[print(c, '=', i+1) for i, c in enumerate(string.ascii_lowercase)]输出:a = 1b = 2c = 3d = 4e = 5等等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python