numpy列堆栈的字符串?

时间:2019-02-20 19:32:49

标签: python numpy

我正在使用numpy.column_stack并遇到问题

Input = input('Input: ')

Words = ['First','Second','Third','Fourth','Fifth','Sixth','Seventh','Eigth','Ninth']
Numbers = [0.5,1,1.25,1.5,2,3,5,10,15]
Stack = np.column_stack((Words, Numbers))

我希望实现的是:

输入:第二个
输出:1

输入:第九个
输出:15

此后,我希望有一个可编辑的辅助文件,以定义单词和数字列表。我不知道Column Stack是否是实现此目的的最佳方法,但是我能想到的最接近的东西?

2 个答案:

答案 0 :(得分:1)

根据您的编辑,您想要使用的是字典:

Words = ['First','Second','Third','Fourth','Fifth','Sixth','Seventh','Eigth','Ninth']
Numbers = [0.5,1,1.25,1.5,2,3,5,10,15]
Stack = {word:number for (word, number) in zip(Words, Numbers)}

Input = input('Input: ')
try:
    print(Stack[Input])
except KeyError:
    print('Input: {} does not exist'.format(Input))

在此示例中,使用Stack的字典理解功能将zip创建为字典。然后,您可以使用来自用户的Input作为字典的键。如果该键在词典中,则将打印相应的值,否则它将显示一条消息,指示该键不在词典中

答案 1 :(得分:0)

您可以使用简单的列表操作将单词与数字配对:

In [283]: Numbers                                                               
Out[283]: [0.5, 1, 1.25, 1.5, 2, 3, 5, 10, 15]
In [284]: Numbers[Words.index('Fifth')]                                         
Out[284]: 2
In [285]: Numbers[Words.index('Second')]                                        
Out[285]: 1
In [286]: Numbers[Words.index('Ninth')]                                         
Out[286]: 15