【问题标题】:making new dictionary with less values用更少的值制作新字典
【发布时间】:2021-09-06 18:36:21
【问题描述】:
names = {"Pietro Gemman": [191, 80],
         "Joshua Gein": [180, 71], 
         "Sally Lowe": [168, 62], 
         "Katie Howard": [164, 56],  
         "Lucas Hoe": [184, 62], 
         "Anderi Stark": [176, 81], 
         "Hannah Wu": [156, 48]}

first_names = {}

嗨,我想使用for 循环来创建一个名为first_names 的新字典,其中包含人的名字的键及其值作为高度。字典names 显示每个人的姓名、身高和体重。如何仅提取名字作为键和高度作为值?

【问题讨论】:

  • 您想如何处理两个项目的名字相同的情况?还有像雪儿这样只有 1 个名字的人呢?
  • 我只是 python 的初学者,所以不太确定我的答案是否正确,但对于相同的名称,我们可能可以使用 if else 语句。对于一个名字,我认为我们可以只使用 1 个名字来代替..
  • 对不起,第一部分对我来说没有任何意义
  • 除此之外,我确实注意到帖子中提到的“只有名字”,所以我认为覆盖名字不会成为问题。
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python-3.x for-loop


【解决方案1】:

类似这样,您在字典中循环并提取您想要的信息:

names = {
    "Pietro Gemman": [191, 80],
    "Joshua Gein": [180, 71],
    "Sally Lowe": [168, 62],
    "Katie Howard": [164, 56],
    "Lucas Hoe": [184, 62],
    "Anderi Stark": [176, 81],
    "Hannah Wu": [156, 48],
}

first_names = {key.split()[0]: value[0] for key, value in names.items()}

print(first_names)

输出:

{
    "Pietro": 191,
    "Joshua": 180,
    "Sally": 168,
    "Katie": 164,
    "Lucas": 184,
    "Anderi": 176,
    "Hannah": 156,
}

【讨论】:

  • 此解决方案或类似解决方案的潜在问题是,如果两个或多个人的名字相同,则这些值将被字典中的最后一个名字覆盖。
  • 没错,如果 op 只想要名字,我不确定如何避免这种情况。有什么想法吗?
  • 假设我们需要听到@Jasmine 来回答@Haleemur Ali 的问题
猜你喜欢
  • 1970-01-01
  • 2021-05-04
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 2017-07-18
  • 1970-01-01
相关资源
最近更新 更多