我有一个元组生成器,我想这样使用:
def pairs():
yield from [("key1", 2), ("key2", 4), ("key3", 6)]
keys, values = zip(*pairs())
[就像一个符咒一样工作,但现在pairs()
也不能产生任何结果,而导致等效于
keys, values = []
是否有可能在一个好的表达式中强制zip
的输出具有给定的维数?
我想要的是这样的东西:
>>> keys, values = magic_extender(zip(*pairs()), 2)
>>> keys, values
((), ())
我的Python版本(3.7)] >>
我建议,如果您使用键和值,则应使用字典的然后解决方案并不难...
def pairs():
"""
documentation of the function.
Returns
-------
dict
The function returns dictionary...
"""
yield {"key1": 2, "key2": 4, "key3": 6}
def main():
pair = dict(next(pairs()))
keys, values = list(pair.keys()), list(pair.values())
print(keys, values)
if __name__ == '__main__':
main()
在此解决方案中,输出为:
['key1', 'key2', 'key3'] [2, 4, 6]
并且如果字典为空,则输出为:
[] []