将输入变量分配给python字典

2024-10-02 16:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想给字典分配一个输入变量这是我目前所拥有的:

diction = {
           "name" : "john",
           "jobs" : ['police', 'mailman']
       }

chooseJob = input("Choose job: ")

if chooseJob == 'police' or chooseJob == 'mailman':
    print(diction['jobs'][chooseJob])
else:
    print("John doesn't have that job")

我在输入部分输入“police”,它输出TypeError:字符串索引必须是整数


Tags: ornamemailmaninputif字典jobsjob
3条回答

到目前为止,答案已经解决了代码的语法问题,但实际上没有解决逻辑问题。也就是说,他们确实没有以有意义的方式使用字典。(也就是说,它们在代码中复制了字典中的数据。)我希望您的数据和代码更像:

dictionary = {
    'name' : "John",
    'jobs' : ['police', 'mailman']
    }

chooseJob = input("Choose job: ")

if chooseJob in dictionary['jobs']:
    print(dictionary['name'], "does have that job!")
else:
    print(dictionary['name'], "doesn't have that job.")

用法

> python3 test.py
Choose job: police
John does have that job!
> python3 test.py
Choose job: mailman
John does have that job!
> python3 test.py
Choose job: garbageman
John doesn't have that job.
> 

job变量是列表类型,您可以使用字符串值分配/读取列表,而不是指定要插入/读取数据的索引位置

试试这个

diction = {
       "name" : "john",
       "jobs" : ['police', 'mailman']
   }

chooseJob = input("Choose job: ")

if chooseJob == 'police':
    print(diction['jobs'][0])
elif chooseJob == 'mailman':
    print(diction['jobs'][1])
else:
    print("John doesn't have that job")`

diction['jobs']返回一个列表,列表只能在这些括号内包含整数diction['jobs'][chooseJob],因为它是列表的索引

也许这就是你想要做的:

diction = {
           "name" : "john",
           "jobs" : ['police', 'mailman']
       }

chooseJob = input("Choose job: ")

if chooseJob == 'police' or chooseJob == 'mailman':
    print(chooseJob)
else:
    print("John doesn't have that job")

相关问题 更多 >