将字符串列表转换为整数列表?

时间:2015-11-25 14:56:50

标签: python

我有一个字符串列表,我想将其转换为一个简单的整数数组。

示例:

yourloop = setInterval(function() {
  // tasks
}, timeInMilliseconds );

转换为:

my_list = ['This is a string', 'This is a string', 'Hi! I am a string', 'I dislike strings', 'This is a string', 'Not a number']

[0, 0, 1, 2, 0, 3] 中具有相同值的元素将在转换后的数组中以相同的整数结束。

这背后的想法是我想利用以下语法(来自matplotlib)来制作散点图,当my_listy_train是一个字符串时它似乎不喜欢它:

i

如何将我的列表转换为整数,如上所述?

4 个答案:

答案 0 :(得分:3)

这应该做:

>>> my_list = ['This is a string', 'This is a string', 'Hi! I am a string', 'I 
>>> dislike strings', 'This is a string', 'Not a number']
>>> mappedDict = dict(zip(set(my_list), xrange(len(my_list))))
>>> output = map(lambda x: mappedDict[x], my_list)
>>> output
[0, 0, 1, 2, 0, 3]

解释:您首先删除列表中的重复项,并将它们与单个ID(在本例中为int)映射到dict中。之后就像将列表中的每个值转换为映射的id一样简单。

答案 1 :(得分:2)

您的问题:将字符串列表转换为整数列表,其中相同的字符串应该成为相同的整数(无论这些整数是什么)

列表的方法index("value")返回找到“value”的第一个索引。对于列表中所有相同的字符串“value”,此方法将返回相同的整数。

>>> my_list = ['This is a string', 'This is a string', 'Hi! I am a string', 'I dislike strings', 'This is a string', 'Not a number']

>>> my_list.index('This is a string')
0

>>> indexes=[my_list.index(l) for l in my_list]
>>> print(indexes)
[0, 0, 2, 3, 0, 5]

答案 2 :(得分:1)

my_list = ['This is a string', 'This is a string', 'Hi! I am a string', 'I dislike strings', 'This is a string', 'Not a number']

converter = {}
i = 1

for item in my_list:
    if item not in converter:
        converter[item] = i
        i += 1

int_list = [converter[i] for i in my_list]

答案 3 :(得分:0)

您希望通过将函数应用于其他列表的所有成员来创建列表。 这是列表理解。

l1 = ['1', '2', '3', '4', '5', '6']
l2 = [int(x) for x in l1]
print l2

[1,2,3,4,5,6]

当然,你有一些完全不同的功能,我不知道你是如何从这些字符串中获得这些数字的,但我认为它是无关紧要的。列表理解将使用您想要的任何功能。

l1 = ['string', 'this', 'is']
def f(s):
    return len(s)
l2 = [f(x) for x in l1]
print l2

[6,4,2]