简体   繁体   中英

List of letters, into a list of numbers

I'm trying to find a simple way of converting a list of letters, into a list of numbers. Given each letter has a certain value - for example;

letters = [F, G, H, F, J, K]

Where F is 10, G is 20, H is 30, J is 40 and K is 50.

I made a semi-working program using if/elif/else and giving each letter a variable of the number, but I was just wondering if there's a more efficient way of doing this, though without the uses of dictionaries.

Thanks for any help guys.

You can use ord :

letters = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
print(letters)
numbers = [(ord(letter) - ord("A") + 1) * 10 for letter in letters]
print(numbers)

That starts at A = 10 to Z = 260

Here is a simple and clear way, you need to store your letters to numbers mappings in a dictionary, and then given any list of letters, you can easily convert to the numbers they are mapped to.

letter_dict = {'F':10,'G':20,'H':30,'J':40,'K':50} 
letter_lst = ['F','J','H','K','G']

number_lst = [letter_dict[letter] for letter in letter_lst]
print(number_lst)

Output:

[10, 40, 30, 50, 20]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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