想象一下,我有一个看起来像这样的函数:
myFunction(arg, arg, kwarg, arg, arg, kwarg, etc...):
其中 arg 是 *arg 而 kwarg 是 *kwarg。在此之前,我的函数看起来像myFunction(*args):
,我只使用了一长串 *args 并且我会传入一个像这样的大列表
myFunction(*bigList):
bigList 看起来像 =[[1,2,3],[4,5,6],'hello',[1,3,5],[2,4,6],'world',etc...]
但是,现在我需要每三个参数都有一个 kwarg。所以,在我看来,列表“看起来”现在是这样的:
newBigList = [[1,2,3],[4,5,6],word='hello',[1,3,5],[2,4,6],word='world',etc...]
因此,有两个问题可以完成这项工作。
1)我可以在没有函数将其作为实际参数读取的情况下为 kwarg 构造一个包含字符串的列表吗?中的word
(s) 可以newBigList
是字符串
2)你能交替使用 kwargs 和 args 吗?我知道 kwargs 通常是用字典完成的。甚至可以交替使用两者吗?
与往常一样,如果有人知道这样做的更好方法,我很乐意改变我的做法。
编辑这是方法。它是一个绘制多边形(或一堆多边形)的 matplotlib 方法:
plot([x1], [y1], color=(RBG tuple), [x2], [y2], color=(RGB tuple), etc...)
[x1]
第一个多边形的 x 值列表在哪里,[y1]
是第一个多边形的 y 值列表,依此类推。
问题是,要为颜色参数使用 RBG 值,我需要包含颜色关键字。为了使事情进一步复杂化,我正在使用random.random()
模块生成一个随机元组。
所以,我有这个所有多边形的 x 值列表列表、我所有多边形的 y 值列表列表以及随机 RBG 颜色的元组列表。它们看起来像这样:
x = [[1,2,3], [4,5,6], [7,8,9]]
y = [[0,9,8], [7,6,5], [4,3,2]]
colors = [(.45, .645, .875), (.456, .651, .194), (.813, .712, .989)]
因此,要绘制三个多边形。在我可以做关键字之前,我一直在做的是zip
将它们全部整合到一个元组中并像这样使用它。
list_of_tuples = zip(x, y, colors)
denormalized = [x for tup in list_of_tuples for x in tup]
plot.plot(*denormalized)
但是,现在我需要这些关键字。如果需要,我非常乐意提供更多信息。谢谢