小编tha*_*s.a的帖子

从字符串 - 谷歌电子表格中提取数字

在谷歌电子表格中,我需要一个公式来提取包含在任意字符串中的所有数字(0到9),该字符串可能包含任何可能的字符,并将它们放入单个单元格中.

示例(输入 - >输出)

d32????????fe9j.r/3-fF66 -> 329366
h01j2j3jFxF$$4j5j6j7j8j9 -> 0123456789
Run Code Online (Sandbox Code Playgroud)

regex extract google-sheets array-formulas google-sheets-formula

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

从Python列表中递归地将相邻的元组分组

我有一个未排序的整数元组列表,例如:

a = [(1, 1), (3, 1), (4, 5), (8, 8), (4, 4), (8, 9), (2, 1)]
Run Code Online (Sandbox Code Playgroud)

我正在尝试找到一种方法来对“递归相邻”元组进行分组。“相邻”是曼哈顿距离为1的元组。通过“递归”,我们的意思是,如果A元组与B相邻,并且B至C相邻,则A,B和C应该在同一组中。

返回曼哈顿距离的函数是这样的:

def Manhattan(tuple1, tuple2):
    return abs(tuple1[0] - tuple2[0]) + abs(tuple1[1] - tuple2[1])
Run Code Online (Sandbox Code Playgroud)

预期结果是:

[(1, 1), (2, 1), (3, 1)], [(4, 4), (4, 5)], [(8, 8), (8, 9)]
Run Code Online (Sandbox Code Playgroud)

在此示例中,(1,1)与(2,1)和(2,1)至(3,1)相邻,这意味着这三个元素应组合在一起。

顺序无关紧要,因此可以是:

[(3, 1), (2, 1), (1, 1)], [(4, 4), (4, 5)], [(8, 9), (8, 8)]
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题有什么Python的想法?

python grouping tuples list

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

如何防止c#中对象的实例化

我需要的是检查传递给构造函数的参数,并防止特定对象被实例化,以防它们被视为无效.

我发现可以抛出异常,因此对象引用将按预期结束"null".

例如,仅当传递给构造函数的整数为非负数时,才会实例化此类.

class MyClass
{
    public MyClass(int a)
    {
        if (a < 0)
        {
            throw new Exception();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然上面的工作正常,但我敢打赌,c#可以提供一种更简洁的方法来做到这一点,避免每次新对象即将构建时需要额外的try/catch需求.

static void Main(string[] args)
{
    MyClass e1;
    MyClass e2;

    try
    {
        e1 = new MyClass(1);
    } 
    catch(Exception)   { }

    try
    {
        e2 = new MyClass(-1);
    } 
    catch(Exception) { }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

Flask WTForms 中不需要的电子邮件验证

我正在使用带有Flask的wtforms,并且有一个电子邮件输入框。我想验证电子邮件条目,但也将其作为非必填字段。用户可以忽略它,但如果他们输入它,我想确保它通过 wtforms 的电子邮件验证器。

理想情况下,我想要这样的东西:

email = StringField('Email', validators=[Email(), DataNotRequired()])
Run Code Online (Sandbox Code Playgroud)

或者

email = StringField('Email', validators=[Email(required=False)])
Run Code Online (Sandbox Code Playgroud)

我想使用 Flask-WTforms 实现这一目标的唯一可能方法是创建一个自定义 验证器。在这种情况下,有没有办法在我的自定义验证器中利用 Email() 验证器,这样我就不必重新实现它?

像这样的东西:

def validate_email(form, field):
    if len(field.data) > 0:
        if (not Email(field.data)):
            raise ValidationError('Email is invalid')
Run Code Online (Sandbox Code Playgroud)

python validation wtforms flask-wtforms

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