我想将包含数组中单词的所有字符串转换为整数。
列表是:
['Met', 'Mod', 'Goa', 'Con', 'Bac', 'Bac', 'Bac', 'Mod', 'Mod', 'Bac',
'Bac', 'Bac', 'Bac', 'Bac', 'Goa', 'Mod', 'Bac', 'Bac', 'Goa', 'Mod',
'Mod', 'Mod', 'Mod', 'Bac']
我想将Met
分配给1
,Mod
分配给2
,Goal
分配给3
,Con
分配给{ {1}}和4
至Bac
。
如何将列表列入:
5
答案 0 :(得分:5)
使用字典。
d = {'Met':1, 'Mod':2, 'Goa':3, 'Con':4, 'Bac':5}
l = ['Met', 'Mod', 'Goa', 'Con', 'Bac', 'Bac', 'Bac', 'Mod',
'Mod', 'Bac', 'Bac', 'Bac', 'Bac', 'Bac', 'Goa', 'Mod',
'Bac', 'Bac', 'Goa', 'Mod', 'Mod', 'Mod', 'Mod', 'Bac']
new_list = list(map(d.get, l))
结果:
>>> new_list
[1, 2, 3, 4, 5, 5, 5, 2, 2, 5, 5, 5, 5, 5, 3, 2, 5, 5, 3, 2, 2, 2, 2, 5]
请注意,我已根据您的要求将每个关键字分配给数字,而不是在演示时将字符串表示为 。
答案 1 :(得分:0)
l = {'Met':1, 'Mod':2, 'Goa':3, 'Con':4, 'Bac':5}
lst = ['Met', 'Mod', 'Goa', 'Con', 'Bac', 'Bac', 'Bac', 'Mod', 'Mod', 'Bac','Bac', 'Bac', 'Bac', 'Bac', 'Goa', 'Mod', 'Bac', 'Bac', 'Goa', 'Mod', 'Mod', 'Mod', 'Mod', 'Bac']
new = []
for each in lst:
new.append(l[each])
print new
答案 2 :(得分:-1)
在通过它运行字符串时计算字典和数字:
strings = ['Met', 'Mod', 'Goa', 'Con', 'Bac', 'Bac', 'Bac', 'Mod', 'Mod', 'Bac', 'Bac', 'Bac', 'Bac', 'Bac', 'Goa', 'Mod', 'Bac', 'Bac', 'Goa', 'Mod', 'Mod', 'Mod', 'Mod', 'Bac']
dictionary = dict()
number = 1
numbers = list()
for string in strings:
if string not in dictionary:
dictionary[string] = number
number += 1
numbers.append(dictionary[string])
结果是:
>>> numbers
[1, 2, 3, 4, 5, 5, 5, 2, 2, 5, 5, 5, 5, 5, 3, 2, 5, 5, 3, 2, 2, 2, 2, 5]
计算的映射可以从字典中获得:
>>> dictionary
{'Met': 1, 'Con': 4, 'Goa': 3, 'Bac': 5, 'Mod': 2}