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

2024-09-30 16:38:47 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我是一个彻头彻尾的傻瓜(就像我在上第一节课一样),我不知道该怎么做。 我从用户处接收到未来字典键的输入以及与所述键对应的一行值,如下所示:

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

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

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

我遇到的问题是如何将其拆分,以便将输入从一个完整字符串转换为一个字符串和多个浮点对象,并将其放入字典中。 请帮忙


Tags: and字符串用户nameappleinput字典values
3条回答
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()尝试将数字输入转换为浮点值,然后将其放入列表中,如果转换失败,则退出。将水果字符串和生成的浮点列表添加到字典中

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.50.61.5橙色0.25 0.40.05

相关问题 更多 >