3 回答
TA贡献1876条经验 获得超5个赞
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=1
b=2
c=3
或者:
with open('alpha.txt') as f:
for line in enumerate(f,start = 1):
print("{}={}".format(line[1][0], line[0]))
输出:
a=1
b=2
c=3
或者
with open('test.txt') as f:
for idx, line in enumerate(f,start = 1):
print('{}={}'.format(line[0], idx))
输出:
a=1
b=2
c=3
TA贡献2051条经验 获得超10个赞
您可以通过调用ord()字符将字母转换为其数值。
ord('a')将等于 97。如果你想偏移你的字符从 1 开始,你可以减去 96,或者你可以使用类似的东西offset = ord('a')-1来让它更有活力。
import string # dont need to import for your version
letters = string.ascii_letters[:26] # lowercase letters for testing
offset = ord('a') - 1
for letter in letters:
输出:
a = 1
b = 2
c = 3
d = 4
等等。
编辑:我的解决方案与其他解决方案的不同之处在于我实际上是将每个字母转换为其值。如果您只想在解决方案出现时对其进行编号,那么我的解决方案将是错误的。
例如,如果给定
letters = ['b', 'c', 'a']
我的解决方案将输出
b = 2
c = 3
a = 1
其他发布的解决方案仍将编号字母
b = 1
c = 2
a = 3
TA贡献1946条经验 获得超4个赞
你也可以使用stringlib:
[print(c, '=', i+1) for i, c in enumerate(string.ascii_lowercase)]
输出:
a = 1
b = 2
c = 3
d = 4
e = 5
等等。
添加回答
举报