【发布时间】:2019-12-12 23:26:04
【问题描述】:
我正在尝试使用 kwargs 创建我的第一个函数,但在循环时遇到了一些问题。
我正在传递两个 kwargs:tick 和 start。 tick 和 start 都将是字符串或字符串列表。
我想遍历 kwargs 以使用 if elif 对它们进行分类并包含正确的字符串和 kwarg
当 kwarg 通过测试时,我想获取该 kwarg 的值并将其/它们附加到与其名称列表匹配的列表中(即刻度进入刻度列表)
目前,我正在获取所有 kwargs 值并将它们附加到列表中,而不是我正在处理的 kwarg 值。
kwarg、kwargs 和 kwarg's sorry 之间是有区别的,这令人困惑。
def fn1(**kwargs):
ticks = []
start = []
# Iterating over the Python kwargs dictionary
for kwarg in kwargs: # For each kwarg in kwargs
if "ticks" in kwarg: #Test if "tick" in kwarg. If yes continue to line below, if not skip the next two lines
for kwarg in kwargs.values(): #for each i in kwargs values THIS IS WRONG
ticks.append(kwarg)
break # I use this to fix what is wrong
elif "start" in kwarg:
for kwarg in kwargs.values(): #Same problem as 5 lines up, and now I do not know how to either skip the first iteration of the loop or fix the original problem
start.append(kwarg)
print(ticks, start)
输入:
fn1(ticks= ["IBM", "AAPL"], start= "2")
输出:
[['IBM', 'AAPL']] [['IBM', 'AAPL'], '2']
期望的输出:
[['IBM', 'AAPL']] ['2']
【问题讨论】:
-
这能回答你的问题吗? What is the purpose and use of **kwargs?
标签: python loops keyword-argument