繁体   English   中英

如何拆分输入以创建字典?

[英]How to split input to create dictionary?

所以我是一个完全的菜鸟(就像我正在服用我的第一个 class rn),我不知道该怎么做。 我从用户那里收到一个未来字典键的输入和与所述键对应的值,如下所示:

fruitone = input("Please enter fruit name and values")

输入类似于:apple 0.5 0.6 1.5。 没有逗号或任何东西,只有很好的空格。 最终,这变成:

fruits = {'Apple': [0.5, 0.6, 1.5], 'Orange': [0.25, 0.4, 0.05]}

我遇到的问题是弄清楚如何将其拆分,这样我就可以将输入从一个完整的字符串转换为一个字符串和多个可以塞入字典的浮点对象。 请帮忙?

dict_ ={}
strA = "apple 0.5 0.6 1.5"
strA = strA.split(' ')

dict_[strA[0]] = strA[1:]

O/p: {'apple': ['0.5', '0.6', '1.5']}

每次使用您的 input() 作为字符串 strA 。

split非常强大。 您应该查阅 Python 文档以了解更多关于如何利用它的信息。

你可以像这样建立一个字典

output = {}
latest_thing = "the current fruit"
for thing in fruitone.split(" "):
    if thing.replace('.','',1).isdigit():
        output[latest_thing].append(float(thing))
    else:
        output[thing] = []
        latest_thing = thing

假设您的输入看起来像

苹果 0.5 0.6 1.5 橙子 0.25 0.4 0.05

fruits = {}


def get_inp():
    inp = input("Please enter fruit name and values: ")
    inp_values = inp.split(" ")
    if len(inp_values) == 4:
        key = inp_values[0]
        try:
            value = list(map(float, inp_values[1:]))
        except ValueError:
            print("Invalid")
            return
        fruits[key] = value
    else:
        print("Invalid")
        return


get_inp()

我假设您希望每个水果都与 3 个浮点数相关联。 从控制台获取输入并将其拆分为字符串列表,并在每个空格处进行划分。 如果结果列表的长度不是 4 个元素(对于水果和 3 个浮点数),则退出,然后使用map()尝试将数字输入转换为浮点值,然后将它们放入列表中,如果转换失败则退出。 将水果字符串和结果浮点列表添加到字典中。

请检查以下代码:

fruitone = input("Please enter fruit name and values")
fruits = {}
for element in fruitone.split():
    if element.isalpha():
        fruits[element]=[]
        temp = element
    else:
        fruits[temp].append(float(element))
print(fruits)

输入:apple 0.5 0.6 1.5 orange 0.25 0.4 0.05 Output 通过上述代码:{'apple': [0.5, 0.6, 1.5], 'orange': [0.25, 0.4, 0.05]}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM