1

我是 python 和一般编程的新手。我查看了很多关于字典、列表、映射、lambda、列表推导等的问题,但我似乎无法将一个特定的函数放在一起来构建我想要的字典。

我可以描述我想要生成的字典如下:

    #goal: make a dictionary that describes a form

    FORMNAME = 'aspnetForm'
    nicks = ['username','password','submit'] #nicknames I want to use
    names = [FIELD_USERNAME, FIELD_PWD, BUTTON_LOGIN] #field names
    values =  ['myusername','mypass',''] #field values
    types =  ['text', 'password', 'submit'] #control types

    INPUTS = [{nicks[0]:{'name':names[0],'value':values[0],'type':types[0]}},
    {nicks[1]:{'name':names[1],'value':values[1],'type':types[1]}},
    {nicks[2]:{'name':names[2],'value':values[2],'type':types[2]}}]

    LOGINFORM = {'name':FORMNAME, 'input':INPUTS} #this is the final dictionary I want to build

请用构建 LOGINFORM 的最佳 python 方法的简单和优雅给我留下深刻印象,以便我可以学习!

我想使用这本字典来填充机械化表格。这是我需要填充的唯一表格。我可以以“长”方式填充此表单,但我想学习如何使用字典以系统的方式填充它。

我在这里的主要目的是学习如何填充字典。但我提前感谢您在我学会如何回答我自己的问题之前没有提出更好的方法。

4

1 回答 1

5

您可以使用zip

LOGINFORM = {'name': FORMNAME, 'input':
     [{nick: {'name': name, 'value': value, 'type': sort}}
       for nick, name, value, sort in zip(nicks, names, values, types)]}

我避免使用typeas 变量名,因为它是一个内置函数/类型,但实际上你可以在这里使用它就好了。

于 2013-01-23T14:31:18.550 回答