例如,我有这个嵌套的字典:
Employee ID: emp1
Employee Name: Bob
Job: Mgr
当用户输入姓名(例如:“鲍勃”)时,如何打印所有信息? 例如,要求用户输入员工姓名以搜索有关该姓名的所有信息:
for line in file1 :
if ">" in line:
name=line[1:7]
open(file2,"r")
item1="51257"
for line in file2:
i51257=0
if name and item1 in line:
print("1")
i51257+=1
elif name and ps1 not in line:
i51257+=0
file2.close()
if ">" not in line:
counted = Counter(line)
divisor= str(1000/counted)
csvout.append(name + "," + divisor + "," + counted + "," + str(i51257))
csvfinal='\n'.join(csvout)
file1.close()
open(csv1, "w")
csv1.write(csvfinal)
csv1.close()
答案 0 :(得分:2)
使用items
遍历您的字典:
for key, value in D.items():
if "Bob" in value['name']:
print(f"Employee ID: {key}")
print(f"Employee Name:: {value['name']}")
print(f"Employee ID: {value['job']}")
答案 1 :(得分:1)
类似的事情会做:
name = input('Enter employee name: ')
for k, v in D.items():
if v['name'] == name:
print('Employee ID:', k)
print('Employee Name:', v['name'])
print('Job:', v['job'])
input('your prompt message')
将提示用户输入用户并返回输入的值。
答案 2 :(得分:0)
name = 'Bob'
for e in list(D):
if name in D[e].values():
job = D[e]['job']
break
# print(name)
# print(job)
# Bob
# Mgr
答案 3 :(得分:0)
这里最有效的解决方案是改革您的数据结构,以使名称成为所有其他信息的关键:
new_d = {values['name']: {'job': values['job'], 'id': key} for key, values in D.items()}
现在您只需使用O(1)进行一次操作即可访问所有信息:
name = input("Enter name")
info = new_d[name]
print("Employee ID:", info['id'])
print("Employee Name:", name)
print("Job:", info['job'])