微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在字典中使用查询器

如何解决在字典中使用查询器

我正在尝试制作一个用户那里获取输入的字典。我目前的代码是(很久没有完成)

person = {
  "name": str(inp("Enter your name: ")),"age": int(inp("Enter your age: ")),"gender": # Help
}

好的,所以我还写了一个带有查询器的小代码,提供了两个选择:

questions = [
  inquirer.List('gender',message="What gender are you?",choices=['Male','Female'],),]
answers = inquirer.prompt(questions)

这在控制台中为用户提供了 2 个选择。男性和女性。 但是我如何才能让我的性别代码与“性别”元素相关联?

解决方法

由于您的 person 对象是一个字典,您可以像这样设置 gender

person["gender"] = new_value

对于 inquirer,似乎 .prompt() 函数返回一个字典,其中键(如您的个人字典中的性别)是问题的名称(我想这对您来说是将是 gender)。在这种情况下,您可以将之前的代码与我们的新知识联系起来,并编写如下内容:

person["gender"] = answers["gender"]

如果你想以更简洁的方式写出以上所有内容,你可以尝试这样的事情:

questions = [
  inquirer.List('gender',message="What gender are you?",choices=['Male','Female'],),]
answers = inquirer.prompt(questions)

person = {
  "name": str(inp("Enter your name: ")),"age": int(inp("Enter your age: ")),"gender": answers["gender"]
}

当然,如果您想保留问题的顺序,您可以简单地提取姓名和年龄的问题,如下所示:

name = str(inp("Enter your name: "))
age = int(inp("Enter your age: "))
questions = [
  inquirer.List('gender',]
answers = inquirer.prompt(questions)

person = {
  "name": name,"age": age,"gender": answers["gender"]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。