如何在没有键的情况下将字符串放入列表中?

时间:2016-11-04 23:00:00

标签: list dictionary python-3.3

所以我的代码的一部分就是这样做

            bag = {'eggs', 'milk', 'youghurt'}
            print(bag.values())
            for x in kaupat:
                if set(kauppat[x]).issuperset(set(bag)) is True:
                    for key in shops[x]:
                        keylist = {key}
                        if set(bag).issuperset(keylist) is True:
                            price+= float(kauppat[x][key])
                            prices[x] = price

当我将包设置为

时,我正在编写代码时工作正常
bag = {'eggs', 'milk', 'yogurt'}

但是现在这个包应该来自输入,我似乎无法创建我当前程序可以使用的那种字典。输入将是这样的:

input = "eggs milk yogurt"

我已经尝试将其拆分为一个列表并按原样使用它或者从中创建一个字典,但它总是出错,因为表单与测试期间的表格不完全相同。

那么我有什么方法可以改变字符串

eggs milk yogurt

进入

{'eggs', 'milk', 'yogurt'}

还是我必须退步很多?

2 个答案:

答案 0 :(得分:0)

看来你正在读一本字典。怎么样:

a = "eggs milk yogurt"
b = a.split(" ")
c = dict(zip(range(len(b)),b))
print(c)
{0: 'eggs', 1: 'milk', 2: 'yogurt'}

答案 1 :(得分:0)

您正在制作set,而不是字典(dict):

>>> type({'eggs', 'milk', 'yogurt'})
<class 'set'>

如果你想从set(或任何看起来像一个)的list做出>>> set(['eggs', 'milk', 'yogurt']) {'eggs', 'milk', 'yogurt'} ,你可以通过它,如下所示:

list

split也是>>> set('eggs milk yogurt'.split()) {'eggs', 'milk', 'yogurt'} 返回的内容,因此您可以执行以下操作:

set()

你必须这样做一次。将一组设置传递给bag不会执行任何操作,因此在其余代码中,您只需编写set(bag)而不是apply