首页 > 解决方案 > 如何为用户获取数据并作为键和值附加到字典中

问题描述

我正在尝试从用户获取数据(他们的名字作为键并标记为值)。

我的问题是,我怎样才能通过用户获取数据Input(),然后选择获得 < 33 的学生并打印他们的结果

我已经尝试过这种方法,但是如何从用户中获取数据并存储在字典中。

students = {
    input('Enter name 1: '): float(input('Enter value 1: ')),
    input('Enter name 2: '): float(input('Enter value 2: ')),
    input('Enter name 3: '): float(input('Enter value 3: ')),
    input('Enter name 4: '): float(input('Enter value 4: ')),
    input('Enter name 5: '): float(input('Enter value 5: ')),
   }

# I know this is ugly method to write type() many times, so this is the problem 

print(len(students))
for (name, value) in students.items():
    print(name, sep='\n')
    print(value)

print(*[student for student in students if students[student] < 33], 
  sep='\n') 

第一个用户将写有多少学生,例如5

我想获取数据表单用户名和标记,如下所示:

   5
   dino
   23.3
   jackson
   33.5
   timcey
   44.5
   james
   55.5
   gardner
   31.2

然后计算谁的学生得分低于 36 分并打印他们的名字

dino
jackson
gardner

标签: pythondictionary

解决方案


尝试使用此代码:

students = {}
n = int(input())
for i in range(n):
    students.update({input('Enter name %s: ' % (i + 1)): float(input('Enter value %s: ' % (i + 1)))})

for name, value in students.items():
    print(name)
    print(value)
print(*[student for student in students if students[student] < 33], sep='\n') 

示例输出:

5
Enter name 1: dino
Enter value 1: 23.3
Enter name 2: jackson
Enter value 2: 33.5
Enter name 3: timcey
Enter value 3: 44.5
Enter name 4: james
Enter value 4: 55.5
Enter name 5: gardner
Enter value 5: 31.2
dino
23.3
jackson
33.5
timcey
44.5
james
55.5
gardner
31.2
dino
gardner

推荐阅读