首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于用户输入创建带有键的字典

基于用户输入创建带有键的字典
EN

Stack Overflow用户
提问于 2018-04-01 14:29:35
回答 3查看 717关注 0票数 1
代码语言:javascript
复制
Cow_id_list = []

Herd_Size = int(input("Enter the size of the herd."))

for x in range(Herd_Size):
    Cow_id = int("Enter a unique 3 digit ID tag for cow",x+1)
    Cow_id_list.append(Cow_id)

print("Initiating yield entry...")

用户输入一个整数(n),它将存储在变量Herd_Size中。如何创建具有相同(n)个键数和我们选择的名称的字典?键值的名称将是ID标记

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-01 14:38:57

这是一条路。

代码语言:javascript
复制
Cow_id_list = []
Yield_list = []

Herd_Size = int(input("Enter the size of the herd."))

for x in range(Herd_Size):
    Cow_id = int(input("Enter a unique 3 digit ID tag for cow"))
    Yield = int(input("Enter yield for {0}".format(Cow_id)))
    Cow_id_list.append(Cow_id)
    Yield_list.append(Yield)

d = dict(zip(Cow_id_list, Yield_list))

解释

  • Cow_id请求整数输入,就像对Herd_Size一样。
  • 对于Yield也要这样做。创建一个类似于Yield_listCow_id_list
  • 通过dict(zip(ids, yields))在末尾创建一个字典。zip用于通过索引同时迭代2个列表。
  • 应用dict将从结果的值对创建一个字典。

为了进一步改进您的逻辑,我建议您考虑添加一些控件;例如,为了确保I实际上由3位数字组成。

票数 2
EN

Stack Overflow用户

发布于 2018-04-01 14:43:47

jpp的方式可能更好,因为您可以同时获得屈服和ID。但是,如果您想保持您的结构,可以这样做:

代码语言:javascript
复制
Cow_id_list = []

Herd_Size = int(input("Enter the size of the herd."))

for x in range(Herd_Size):
    Cow_id = int(input("Enter a unique 3 digit ID tag for cow"))
    Cow_id_list.append(Cow_id)

print("Initiating yield entry...")

d = {}
for i in Cow_id_list:
    y = float(input("Enter yielf for cow {}: ".format(i)))
    d[i] = y

这里要做的是,您启动d作为一个空字典,然后迭代您的牛ID,一个一个地获得产量,然后为每个牛添加一个键,并将相应的产量作为一个值添加到字典d中。

票数 2
EN

Stack Overflow用户

发布于 2018-04-01 15:07:06

不确定为什么需要创建一个具有特定数目的键的字典。您只需向用户请求输入ID,并将其放入字典中即可。

如果你有10头牛,你就不会有15头母牛的身份和产量。

代码语言:javascript
复制
def add_cow_info():
    add_info = str(input("input cow id and yield?: (y/n)")
    if add_info == "y":
        return True
    elif add_info == "n":
        return False


def main():
    cow_yield = {}
    input_cow = True
    while input_cow():
        ID = str(input("Enter ID: ")) #if the ID is 001, or 010, the result
                                      # will be 1, 10, respectively. 
                                      #Generally keys should be strings anyways.
        _yield = int(input("Enter yield: "))
        cow_yield[ID] = _yield

    return cow_yield
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49599075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档