迭代字典的元组并将嵌套字典传递给函数

2024-09-30 01:26:07 发布

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

#!/usr/bin/python -tt

# A dictionary Of Each New SSID
WirelessNetwork = {}
WirelessNetwork['name'] = 'baz'
WirelessNetwork['type'] = 'bar'
WirelessNetwork['pass'] = 'foo'

# A list of all SSIDs
networkAddList = (WirelessNetwork)

def addWireless(passedDict={}):
  print 'Adding SSID: %s' % passedDict['name']
  print 'Of type: %s' % passedDict['type']
  print 'With Password: %s' % passedDict['pass']

for networkDict in networkAddList:
  addWireless(networkDict)

所以我有一个列表“networkAddList”里面装满了字典,也就是“WirelessNetwork”。 我想迭代列表“for networkAddList中的networkDict” 把字典传给我的函数“addWireless”

运行上面的示例代码时,出现以下错误:

^{pr2}$

这让我认为python认为passedDict是一个字符串,因此我认为我需要字符串索引,即0或其他东西,而不是键“name”。我是python新手,但我要经常做这种事情,所以我希望有人能给我指出正确的方向,因为我认为这很简单。但是我不能改变基本的想法,即一个字典列表。在


Tags: of字符串name列表for字典typepass
3条回答

这不是一个列表,是值本身

# A list of all SSIDs
networkAddList = (WirelessNetwork)

用逗号将变成一个列表

^{pr2}$

实际上,它不是一个列表,即使有逗号。它是一个元组,它是不可变的。如果你的代码想在以后附加任何东西,我会把它提出来。在

networkAddList = [WirelessNetwork] # or, list(WirelessNetwork)

在python中调试时,您可以确认传递的值是否是一个具有类型函数的字符串:

print type(passedDict)

当你用一个元素创建元组时,你需要一个尾随的“,”。还要注意元组与python中的列表不同。主要的区别在于元组是不可变的,而列表不是不变的。在

^{pr2}$

相关问题 更多 >

    热门问题