我想迭代可选参数,一个简单的例子:
a = [1,2,3]
b = [4,5,6]
c = {'function':['add','add','multiply']}
for i in zip(a, b, *c):
if i['function'] == 'add':
print(i[0] + i[1])
elif i['function'] == 'multiply':
print(i[0] * i[1])
这目前不起作用,但我不确定为什么在阅读了这里的*符号之后: https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists
我觉得迭代器应该从I返回2个索引,以及字典中的任何命名值?你知道吗
如何正确实现这个逻辑?你知道吗
谢谢你的回复,但我认为我没有正确地解释我的想法。你知道吗
我的最终目标是迭代字典中的格式值:
labels = ['Car', 'Van', 'Bike']
font_list = {'bold':[True, True, False],
'italic'=[False, True, True]}
font = {'underline':False}
for i in zip(labels, *font_list):
if 'bold' in i:
bold = i['bold']
else:
bold = font['bold']
addLabelToPlot(label=i[0], bold=bold, ...)
...
如果每个标签的格式不同,那么它将被放置在font_list
字典中,否则它将被放置在font
字典中。你知道吗
你可以这样用
这是因为您的代码在执行
这就产生了:
我们只匹配字符串中的第一个字符,但是 如果我们这样做
我们得到以下输出:
然后代码可以如下所示:
对您来说,显式地解压这些值可能更有意义,以便以以下方式读取代码更容易理解,这种方式是获取命名变量,而不必依赖于可能会让人困惑的索引。你知道吗
你应该使用
c['function']
然后你会用
i[2]
代替i['function']
相关问题 更多 >
编程相关推荐