繁体   English   中英

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

[英]How do I convert an array of strings to a list of numbers?

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

清单是:

['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分配给4 ,将Bac分配给5

我如何将清单做成这个:

['1', '2', '3', '4', '5', '5', '5', '2', '2', '5', '5', '5', '5', '5',
 '3', '2', '5', '5', '3', '2', '2', '2', '2', '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]

请注意,我已按照您的要求将每个关键字分配给一个数字 ,而不是您所演示的代表一个数字字符串

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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