【问题标题】:How can I make a string into a list without keys?如何将字符串放入没有键的列表中?
【发布时间】:2016-11-04 22:59:59
【问题描述】:

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

            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设置为

时,它在我编写代码时起作用了
bag = {'eggs', 'milk', 'yogurt'}

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

input = "eggs milk yogurt"

我尝试将它拆分为一个列表并按原样使用它或从中制作一个字典,但它总是出错,因为该表单与我在测试期间所使用的不完全一样。

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

eggs milk yogurt

进入

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

还是我必须后退很多?

【问题讨论】:

    标签: list dictionary python-3.3


    【解决方案1】:

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

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

    如果你想从list(或任何类似的东西)创建一个set,你可以像这样传递它:

    >>> set(['eggs', 'milk', 'yogurt'])
    {'eggs', 'milk', 'yogurt'}
    

    list 也是 split 返回的,所以你可以这样做:

    >>> set('eggs milk yogurt'.split())
    {'eggs', 'milk', 'yogurt'}
    

    您只需执行一次。将 set 传递给 set() 没有任何作用,因此在其余代码中,您只需编写 bag 而不是 set(bag)

    【讨论】:

      【解决方案2】:

      看来您正在查找字典。怎么样:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        • 2020-12-13
        • 2013-12-23
        • 2018-10-15
        相关资源
        最近更新 更多