将字符串转换为int值python

时间:2014-10-16 09:16:46

标签: python string int

我想在Python中将字符串转换为特定的int值,即" red"我想成为1,"蓝色"到2等我正在使用if-else语句。我有一个字符串数据集,其中包含我想要与数字关联的常见字符串。请帮忙。

def discretize_class(x):
    if x == 'first':
        return int(1)
    elif x == 'second':
        return int(2)
    elif x == 'third':
        return int(3)
    elif x == 'crew':
        return int(4)

3 个答案:

答案 0 :(得分:3)

您需要使用字典。我认为这是最好的:

dictionary = {'red': 1, 'blue': 2}
print dictionary['red']

或者您刚才添加的新代码:

def discretize_class(x):

    dictionary = {'first': 1, 'second': 2, 'third': 3, 'crew': 4}
    return dictionary[x]

print discretize_class('second')

答案 1 :(得分:0)

假设,通过数据集,您要么意味着

  • 文本文件
  • 数据库表
  • 字符串列表

首先,重要的是,您需要知道如何读取数据。

的示例
  • 测试文件:您只需读取文件并遍历文件对象
  • 即可
  • 数据库表:根据您使用的库,它将提供一个API,将所有数据读入字符串列表
  • 字符串列表:嗯,你已经知道了

使用内置enumerate

枚举所有字符串

使用字符串

交换枚举

使用dict-comprehension(如果你的python版本支持),或通过内置的`dict

将元组列表转换为字典
with open("dataset") as fin:
    mapping = {value: num for num, value in enumerate(fin)}

这将提供dictionary,其中每个字符串ex,redblue都映射到唯一编号

答案 2 :(得分:0)

你的问题有点模糊,但也许这有帮助。

common_strings = ["red","blue","darkorange"]
c = {}
a = 0
for item in common_strings:
    a += 1        
    c[item] = a
# now you have a dict with a common string each with it's own number.