小编Nar*_*san的帖子

在Swift3中对数组进行排序

在我的代码中,我有一个如下结构:

struct Object {
    var name: String
    var count: Int
Run Code Online (Sandbox Code Playgroud)

我现在正在创建一个包含随机名称和随机计数的10个对象的数组.

是否有一种简单的方法来
a)按字母顺序对它们进行排序
b)按升序对它们进行数字排序

基本上,会有一个像这样的数组: [Object1, Object2, Object3].每个Object都有一个namecount属性,我希望通过这两个属性对该列表中的对象进行排序.

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中重命名了,我不会放弃如何做到这一点.

arrays sorting swift swift3

10
推荐指数
3
解决办法
3万
查看次数

在 R 中重命名图例值

通过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)

在此输入图像描述

  • 一种选择是打开 Excel 文件并将特定列中的所有 0 和 1 更改为“男性”和“女性”。
  • 另一种选择是重命名 R 中的值,但我完全不知道如何执行此操作。我对 R 很陌生。

我希望有一种简单的方法来重命名图例中显示的值。

r ggplot2 axis-labels

3
推荐指数
1
解决办法
2894
查看次数

NumPy:填充数组中1周围的字段

假设我有一个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

有没有更多数学或简洁的方法来做到这一点?

python arrays numpy matrix

2
推荐指数
1
解决办法
248
查看次数

在构建时调用未指定的方法

注意:类似的问题已经存在,尽管是针对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.

python methods class python-3.x

1
推荐指数
1
解决办法
22
查看次数

标签 统计

arrays ×2

python ×2

axis-labels ×1

class ×1

ggplot2 ×1

matrix ×1

methods ×1

numpy ×1

python-3.x ×1

r ×1

sorting ×1

swift ×1

swift3 ×1