我找不到任何能解释该运算符的方式来解释该运算符,所以我只是想确保自己理解正确,并为像我这样的非编程向导提供帮助。
考虑我们可以写
Name Block Rotation
0 name1 Block 1 ERJD
1 name2 Block 1 PEDI
2 name3 Block 1 MAM
3 name4 Block 1 PEDI
4 name2 Block 2 ERJD
5 name3 Block 2 PEDI
6 name4 Block 2 MAM
7 name2 Block 3 VAC
8 name2 Block 4 ABD
和
df.loc[df['Name'].eq('name2') & df['Block'].eq(['Block 3','Block 4']), 'Rotation'] = 'VAC'
做同样的事情。在这种情况下,似乎tree.delete(*tree.get_children())
已被编程为接受任意长度的参数来完成与for循环相同的操作。这很受欢迎吗?这是犹太洁食吗?
for i in tree.get_children():
tree.delete(i)
是我对第一部分要回答的解决方案
tree.delete
edit:
循环和def func(*numbers):
return list(map(lambda x: x + 1, numbers))
old = [1,2,3]
new = []
for i in old:
new.append(i + 1)
print(func(*old) == new)
在这里是等效的,但是有理由为什么我们可能更喜欢一个吗?
答案 0 :(得分:2)
f(*old)
等效于调用f(1,2,3)
。由于f
不能接受多个参数,因此会引发错误。
您可以看到这与列表版本在功能上有所不同。如果您想将列表重写为更简单/更漂亮的内容,则可以使用列表理解功能
new = [ f(i) for i in old ]
还有map
new = list(map(f,old))
答案 1 :(得分:0)
for
循环和func
在这里是等效的,但是有理由为什么我们可能更喜欢一个吗?
您是否想知道性能上的差异?您仍然需要遍历所有元素。在该方法的内部或外部,循环是相同的,因此,总的来说,我会说一种解决方案而不是另一种在性能方面没有真正的优势。
首选项应取决于其他因素。例如,您是否预见到需要在程序中大量循环删除这些three.children
?如果是这样,最好让函数在它们上循环而不是写很多次:
for i in tree.get_children():
tree.delete(i)
在您的代码中。