Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中动态生成列表和字典。我正在尝试用Python创建数组_Python_Python 3.x_Python 2.7 - Fatal编程技术网

在Python中动态生成列表和字典。我正在尝试用Python创建数组

在Python中动态生成列表和字典。我正在尝试用Python创建数组,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我是Python新手,在创建动态列表和字典时遇到了问题 我想要的结果是: { 'page1': [{'email': [{'emailAddress':'abc@gmail.com'}],[{'emailAddress1':'abc@gmail.com1'}],... }],[{'url': [{'url':'abc.com','cordinates','10,10,100,45'}],[{'url':'abc.com','cordinates',

我是Python新手,在创建动态列表和字典时遇到了问题

我想要的结果是:

{
'page1':
    [{'email':
        [{'emailAddress':'abc@gmail.com'}],[{'emailAddress1':'abc@gmail.com1'}],...
    }],[{'url':
        [{'url':'abc.com','cordinates','10,10,100,45'}],[{'url':'abc.com','cordinates','10,10,100,45'}]...
    }]
}
{
'page1':
    [{'email':
        [{'emailAddress':'abc@gmail.com'}],[{'emailAddress1':'abc@gmail.com1'}],...
    }],[{'url':
        [{'url':'abc.com','cordinates','10,10,100,45'}],[{'url':'abc.com','cordinates','10,10,100,45'}]...
    }]
}
{
'page1':
    [{'email':
        [{'emailAddress':'abc@gmail.com'}],[{'emailAddress1':'abc@gmail.com1'}],...
    }],[{'url':
        [{'url':'abc.com','cordinates','10,10,100,45'}],[{'url':'abc.com','cordinates','10,10,100,45'}]...
    }]
}.....
我无法提供原始数据供您查看,但我将使用以下代码创建此类数据:

from pprint import pprint
dict1 = {}
dict2 = {}
dict3 = {}

newObj = {'name'}
finalVar = []
finalVars = []
newVal = {}
for i in range(10):
    temp = {'page'+str(i)}

    for k in range(10):
        newtemp = {'page'+str(i):{'email':[{
            'emailId':str(i),
            'test':str(k)
        }]}}
        finalVar.append(newtemp)

for i in range(10):
    temp = {'page'+str(i)}
    for k in range(10):
        newtemp = {'page'+str(i):{'email':[{
            'url':str(i),
            'testing':str(k)
        }]}}
        finalVars.append(newtemp)

pprint(finalVars)

我是Python新手,所以即使我不知道我正在创建有效的列表和数组字典。因此,如果有任何错误,请道歉。

从问题中我假设需要一个字典,其键为page0、page1等,每个键的值是另一个字典,键为电子邮件,URL和电子邮件的值是一个dict数组,如
{email':'0@mail.com'}
url的值是一个dict数组,如
{'coordinates':[10,10,100,45],'url':'0.com'}
。下面是一个示例代码,它生成以下输出(如上所述)

对应的python代码:

import pprint

result = {}
emails_key = "emails"
urls_key = "urls"

for i in range(2):
    page_key = "page" + str(i) 
    result[page_key] = {emails_key: [], urls_key: []}
    for j in range(2):
        result[page_key][emails_key].append({'email': str(j) + '@mail.com'})
        result[page_key][urls_key].append({'url': str(j) + '.com', 'coordinates': [10,10,100,45]})

pprint.pprint(result)

希望这能有所帮助。

我相信类似于以下代码的代码将生成您想要的数组类型

email_entries = []
for i in range(num_email_entries):
    email_entries.append([{'emailAddress' + str(i)*(i>0):'abc@gmail.com'}])
email_container = [{'email':tuple(email_entries)}]

url_entries = []
for i in range(num_url_entries):
    url_entries.append([{'url' + str(i)*(i>0):'abc.com',
                       'coordinates' + str(i)*(i>0):'10,10,100,45'}])
url_container = [{'url':tuple(url_entries)}]

array = {'page': (email_container,url_container)}
num\u email\u entries=num\u url\u entries=2
时的输出为

{'page': 
       ([{'email': 
                  ([{'emailAddress': 'abc@gmail.com'}], 
                   [{'emailAddress1': 'abc@gmail.com'}])
        }],
        [{'url': 
                  ([{'url': 'abc.com', 
                      'coordinates': '10,10,100,45'}], 
                   [{'url1': 'abc.com', 
                      'coordinates1': '10,10,100,45'}])
        }]
       )
}

我需要这种类型的数组,因为我必须在XLSX writer中使用这种数组。从来没有使用过临时对象,而且我认为它拼写为“坐标”,可能永远不会使用临时对象的双重副本。我不明白你的意思。您的意思是我们不能将temp用作变量?
temp
不是无效名称。请你把你的问题解释清楚一点好吗?您当前的代码有什么问题,您需要什么帮助?
{'page': 
       ([{'email': 
                  ([{'emailAddress': 'abc@gmail.com'}], 
                   [{'emailAddress1': 'abc@gmail.com'}])
        }],
        [{'url': 
                  ([{'url': 'abc.com', 
                      'coordinates': '10,10,100,45'}], 
                   [{'url1': 'abc.com', 
                      'coordinates1': '10,10,100,45'}])
        }]
       )
}