得到不可用的类型:'list',同时使用.split()

时间:2016-07-22 05:12:54

标签: python python-3.x

我正在使用python 3开始。我试图从控制台拆分输入以匹配我的字典中的键,并在控制台上显示所述键的值。我一直在努力工作几个小时,决定分手并寻求帮助。这是一些代码。

enter = input("test  ").split()
names1 = {8410:"A", 8422:"B", 8450:"C", 8386:"D", 8394:"E", 8395:"F", 8318:"G", 8451:"H", 8348:"I", 8294:"J", 8349:"K"}
if enter in names1:
    print(names1[enter])

我有16个字典,其中有7000多个名字,其中包含员工ID。我的主要目标是能够输入一个包含ID的URL,例如:www.domain.com/8450,让控制台只抓取8450,然后显示C.

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果你知道你的网址会像{1}那样使用rsplit('/')

>>> enter = int(input('test: ').rsplit('/')[-1])
test: www.domain.com/8450
>>> enter
8450
>>> names1[enter]
'C'

此外,您的密钥存储为整数,因此请使用int()将输入转换为int。

答案 1 :(得分:0)

split()返回一个列表

例如:

>>> input('test:').split()
test:hello
>>>  ['hello']

您正在检查dict中的任何键是否为列表,如下所示:

>>> if ['input'] in {'input': 'sample data'}

哪个不起作用。

您需要清理您的输入。有很多方法可以做到这一点。一个例子可能是:

>>> if isinstance(enter, list):
>>>     enter = enter[0]

选择权在你手中。