如何将字符串数组转换为数字列表?

时间:2016-03-30 04:13:30

标签: python list

我想将包含数组中单词的所有字符串转换为整数。

列表是:

['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分配给1Mod分配给2Goal分配给3Con分配给{ {1}}和4Bac

如何将列表列入:

5

3 个答案:

答案 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}