python - 字典仅捕获最后一个键值对 Python
问题描述
有一个名称字典和一个打印字典的功能。问题是当我运行 create_user() 函数时,它只捕获并打印最后一个值。
users={}
def create_users():
while True:
choice=input('Create a new user?: Y/N ')
if(choice=='y'):
first_name= input('Enter first name: ')
users['first_name'] = first_name
last_name= input('Enter last name: ')
users['last_name']=last_name
print(len(users))
if(choice=='n'):
print('Exit')
break
def print_dir():
print('Directory Item ','\n')
for k,v in users.items():
print(k,v)
create_users()
print_dir()
我也在下面尝试过,在 while 之前和之后捕获。那没有解决。
def create_user():
first_name= input('Enter first name: ')
users['first_name'] = first_name
last_name= input('Enter last name: ')
users['last_name']=last_name
while True:
choice=input('Create a new user?: Y/N ')
if(choice=='y'):
first_name= input('Enter first name: ')
users['first_name'] = first_name
last_name= input('Enter last name: ')
users['last_name']=last_name
任何提示/线索我该如何解决这个问题?谢谢
我根据建议尝试的附加项目(嵌套字典)
users={}
users['username'] = {}
while True:
choice=input('Create a new user?: Y/N ')
if(choice=='y'):
first_name= input('Enter first name: ')
users['username']['first_name'] = first_name
last_name= input('Enter last name: ')
users['username']['last_name']=last_name
我仍然遇到同样的问题,即没有获得所有值
Create a new user?: Y/N y
输入名字:詹姆斯
输入姓氏:琼斯
创建新用户?:Y/N y
输入名字:rob
输入姓氏:威廉
创建一个新用户?:是/否 n
退出目录项
用户名 {'first_name': 'rob', 'last_name': 'william'}
解决方案
字典是一个键值对。字典有唯一的键。因此,当您运行程序并第二次选择“y”时,它将更新现有的键,即“first_name”和“last_name”。在这种情况下,您不能在字典中拥有像 {'first_name':'A','last_name':'B','first_name':'C','last_name':'D'} 这样的数据,键是重复的。但是,您可以将 first_name 保存为键,将姓氏保存为值。请参阅下面的代码。
users={}
def create_users():
while True:
choice=input('Create a new user?: Y/N ')
if(choice=='y'):
first_name= input('Enter first name: ')
# users['first_name'] = first_name
last_name= input('Enter last name: ')
# users['last_name']=last_name
users[first_name] = last_name
print(len(users))
if(choice=='n'):
print('Exit')
break
def print_dir():
print('Directory Item ','\n')
for k,v in users.items():
print(k,v)
create_users()
print_dir()
推荐阅读
- javascript - wordpress 在插件中调用 javascript 函数
- java-8 - 具有限制+并行的Java8 IntStream
- json - 如何在 Swift 4 中编写 JSON 序列化
- swift - Mac 上的 AVAudioPlayer 无法播放/崩溃
- kotlin - 数组和arrayOf,hashmap和hashmapOf有什么区别?
- python - 如何使用 Python Flask 将文件上传到 Firebase 存储?
- c++ - 转换 STL 列表
成向量 c++11 - swift - 在 Swift AwaitKit 中使用 Firestore 调用?
- javascript - AJAX 没有从 JS 调用 php 文件?
- scala - Scala 使用外部 val 生成时间序列数据