用户输入名称时,如何获取键值?

时间:2020-05-17 21:04:13

标签: python

例如,我有这个嵌套的字典:

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()

4 个答案:

答案 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'])
相关问题