在我的代码中,我有一个如下结构:
struct Object {
var name: String
var count: Int
Run Code Online (Sandbox Code Playgroud)
我现在正在创建一个包含随机名称和随机计数的10个对象的数组.
是否有一种简单的方法来
a)按字母顺序对它们进行排序
b)按升序对它们进行数字排序
基本上,会有一个像这样的数组:
[Object1, Object2, Object3].每个Object都有一个name和count属性,我希望通过这两个属性对该列表中的对象进行排序.
Swift2中的解决方案(使用此解决方案:StackOverflow):
Object.sort{
if $0.name != $1.name {
return $0.name < $1.name
}
else {
//suits are the same
return $0.count < $1.count
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这已经sorted(by: )在Swift3中重命名了,我不会放弃如何做到这一点.
通过ggplot2,我学会了重命名 X 轴、Y 轴和各个图例。但是,我还想重命名图例值。
举个例子,为了简单起见,我在数据集中使用 0 代表男性,1 代表女性,当我显示它并将性别映射到审美时,我不希望图例读取 0 或 1 作为数据值,但是男性和女性。
或者,在下面的示例中,使用“4 轮驱动”、“前轮驱动”、“后轮驱动”代替“4”、“f”和“r”将使图表更容易理解。
library(tidyverse)
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = drv)) + labs(x = "Engine Size (Liters)", y = "Fuel Efficiency (Miles per Gallon)", color = "Drive")
Run Code Online (Sandbox Code Playgroud)
我希望有一种简单的方法来重命名图例中显示的值。
假设我有一个4x4矩阵,如下所示:
[[0, 0, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
我想写一个函数,它接受一个的所有4个周围的字段,并将它们变成1.
上述矩阵将变为:
[[0, 0, 1, 0]
[0, 1, 1, 1]
[0, 0, 1, 0]
[0, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
我知道这可以使用if语句,但我真的想优化我的代码.
矩阵只包含0和1.如果1位于矩阵的边缘,则1不应该环绕,即如果最左边的字段是1,则最右边的字段仍然保持为0.此外,我使用的是Python 3.5
有没有更多数学或简洁的方法来做到这一点?
注意:类似的问题已经存在,尽管是针对C#.
我们假设我的代码如下所示:
class SomeClass:
def __init__(self):
pass
def do(self):
print("a")
class SomeOtherClass:
def __init__(self):
pass
def do(self):
print("b")
class B:
def __init__(self):
self.SomeClass = SomeClass()
self.SomeOtherClass = SomeOtherClass()
def __main__():
myclass = B()
desired_class = str(input("The method of which class do you want to execute? "))
myclass.desired_class.do()
Run Code Online (Sandbox Code Playgroud)
我不会在建造时知道SomeClass将要调用什么方法.如果你有200种方法而且只有2种方法可供选择,那么if-then-else也不是很整洁.
如何在python中最有效地完成?
注意:method将始终是现有的方法SomeClass.