如何将动态数量的参数传递给函数?
我有一本字典,可能有不同数量的键。密钥的值是一个数字列表。我想比较这些列表中的每一个,并获取列表中所有项目的最大值。如何将动态数量的参数传递给函数?
内置MAX()函数会给我最大的所有项目,如果我在下面的方式通过了它:
MAX(LISTA,数组listB,listc)
列表的数量各不相同,我的字典里看起来是这样的:
myDict = {1:LISTA,2:数组listB:3:listc,...}
我想或这样的事情:
maxlist = max(myDict.keys()中的项目):myDict [item])
但我认为这不起作用。请帮忙!
发电机表达的正确语法将
maxlist = max(myDict[item] for item in myDict.keys())
这将是在这种情况下,更容易在第一时间使用myDict.values()
:
maxlist = max(myDict.values())
这也适用于我。由于我设置字典的方式,我最终使用了生成器表达式。 用于频带中aptData [文件] .keys(): \t \t用于信道在aptData [文件] [带] .keys(): \t \t \t用于模式在aptData [文件] [带] [信道]。键(): \t \t \t \t TXPWR = MAX(aptData [样品] [带] [频道] [模式] [0]在aptData.keys样品()) – emad 2012-04-13 20:55:24
如何:
>>> p = {1: [2,3], 4: [5,6,7]}
>>> max(p.values())
[5, 6, 7]
对于字典,values()
返回值,所以你不会探究很高兴需要迭代字典中的所有键/值。
此工程...不认为这这很容易...我感到尴尬:( – emad 2012-04-13 20:25:39
给予字典垃圾邮件,你可以找到最大的
max(spam.values(),key=len)
现在你的问题是位在这个意义含糊,什么是要找到
以上将返回其最大你有最大元素的列表的长度(又称长度是最大的)
如果你想要获得所有列表的最大元素(单个最大元素),你也可以做
max(itertools.chain(*spam.values()))
相反,如果你想找到具有最大价值的列表,你可以做
max(spam.values())
不这样做的最佳方式,但如果你说你会工作...... maxlist = MAX( [myDict [x] for myDict.keys()]) – jcfollower 2012-04-13 20:11:35