使用迭代在字典中创建多个列表

2024-09-30 03:24:50 发布

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


我现在正在为我的HTML页面写一点逻辑。我的目标是在迭代中创建变量(列表)(使用迭代来创建所述列表的名称,因为它们的数量对程序来说是未知的)。我正在创建如下列表:

maps={}
    currentMap = elements[0].process
    counter=0
    for i in elements:
        if(counter==0):
            maps["mapsEle{0}".format(counter)]=[]
            counter+=1
        if(i.process!=currentMap):
            currentMap = i.process
            maps["mapEle{0}".format(counter)]=[]
            counter+=1
        else:
            print("No change found, keeping heading the same.")

但是,正如您可能知道的,这并不是创建一个列表,而是创建一个字符串。我试着打印变量(例如mapsEle0),它返回变量名(例如print(mapsEle0)返回“mapsEle0”),这也让我感到惊讶,因为如果字典将它保存为字符串,它会打印“[]” 因此,我正在寻找一种方法,在我正在使用的迭代中在字典中创建列表,基本上只想重新格式化我的声明。提前为大家干杯:)

编辑:
这里是我试图附加的代码。请注意,我想在列表中加上“I”,而不是在字典中。你知道吗

for i in maps:
        for x in elements:
            if(x.process!=currentMap):
                currentMap=x.process
            elif(x.process==currentMap):
                #i.append(x)

Tags: 字符串informat列表forif字典html
2条回答

您正在通过执行print('mapsEle0')来打印字符串。 要打印dict,您必须print(maps)-'打印整个字典,或者,要打印特定的键/元素print(maps['mapsEle0'])

为了进一步说明,这里有一个口译员会议:

>>> maps = {}
>>> counter = 0
>>> maps["mapsEle{0}".format(counter)]=[]
>>> maps 
{'mapsEle0': []}
>>>
>>> print(maps)
{'mapsEle0': []}
>>>
>>> print(maps['mapsEle0'])
[]
>>> 

对于附加部分:

>>> maps['mapsEle1'].append('hello')
>>> print(maps['mapsEle1'])
['hello']

编辑2:您的陈述仍然不清楚

As requested here is the code where I attempt to append. Please note I want to append 'i' into the lists and no the dictionary.

我认为sobek做对了-你想把x附加到mapsEle0mapsEle1列表,它们是maps字典中的键。你知道吗

for i in maps.iterkeys():
    for x in elements:
        if(x.process!=currentMap):
             currentMap=x.process
        elif(x.process==currentMap):
             maps[i].append(x)

你的print语句的语法是错误的,如果你想访问字典的内容,你需要使用不同的符号。你知道吗

你需要做的不是print('mapsEle0'),而是print(maps['mapsEle0'])。你知道吗

更新:

不幸的是,您对所需内容的描述和您的代码有点冲突,因此如果可以,请尝试进一步解释此代码的作用。你知道吗

for i in maps.iterkeys():
        for x in elements:
            if(x.process!=currentMap):
                currentMap=x.process
            elif(x.process==currentMap):
                maps[i].append(x)

如果满足elif条件,这将遍历maps'mapsEle0'...'mapsEleN')的所有键,并将x添加到包含的列表中。你知道吗

相关问题 更多 >

    热门问题