如何在没有键的情况下将字符串制作成列表?
How can I make a string into a list without keys?
所以我的部分代码是这样做的
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'}
还是我必须后退很多?
看来您在找字典。怎么样:
a = "eggs milk yogurt"
b = a.split(" ")
c = dict(zip(range(len(b)),b))
print(c)
{0: 'eggs', 1: 'milk', 2: 'yogurt'}
您制作的是 set
,而不是字典 (dict
):
>>> type({'eggs', 'milk', 'yogurt'})
<class 'set'>
如果你想从 list
(或任何看起来像的东西)做成 set
,你可以传递它,像这样:
>>> set(['eggs', 'milk', 'yogurt'])
{'eggs', 'milk', 'yogurt'}
一个list
也是什么split
returns,所以你可以这样做:
>>> set('eggs milk yogurt'.split())
{'eggs', 'milk', 'yogurt'}
你只需要这样做一次。将集合传递给 set()
什么都不做,因此在其余代码中,您可以只写 bag
而不是 set(bag)
.
所以我的部分代码是这样做的
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'}
还是我必须后退很多?
看来您在找字典。怎么样:
a = "eggs milk yogurt"
b = a.split(" ")
c = dict(zip(range(len(b)),b))
print(c)
{0: 'eggs', 1: 'milk', 2: 'yogurt'}
您制作的是 set
,而不是字典 (dict
):
>>> type({'eggs', 'milk', 'yogurt'})
<class 'set'>
如果你想从 list
(或任何看起来像的东西)做成 set
,你可以传递它,像这样:
>>> set(['eggs', 'milk', 'yogurt'])
{'eggs', 'milk', 'yogurt'}
一个list
也是什么split
returns,所以你可以这样做:
>>> set('eggs milk yogurt'.split())
{'eggs', 'milk', 'yogurt'}
你只需要这样做一次。将集合传递给 set()
什么都不做,因此在其余代码中,您可以只写 bag
而不是 set(bag)
.