亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字母轉換為有值的數字

將字母轉換為有值的數字

慕碼人8056858 2022-01-05 20:31:03
我是 Python 新手,我是堆棧論壇的新手,但我希望能在這里找到一些運氣。我在導入的列表中有一個包含字母 az 的文本文件。一個乙C....我想讓數字有一個數值,所以當它打印時它會說類似一 = 1乙 = 2c = 3 ....我怎樣才能使這項工作?這就是我所想到的,但這只會打印 txt 文件。f = open('alpha.txt', 'r')file_contents = f.read()print (file_contents)f.close()
查看完整描述

3 回答

?
慕運維8079593

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


查看完整回答
反對 回復 2022-01-05
?
侃侃無極

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


查看完整回答
反對 回復 2022-01-05
?
絕地無雙

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

等等。


查看完整回答
反對 回復 2022-01-05
  • 3 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號