在谷歌电子表格中,我需要一个公式来提取包含在任意字符串中的所有数字(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
我有一个未排序的整数元组列表,例如:
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的想法?
我需要的是检查传递给构造函数的参数,并防止特定对象被实例化,以防它们被视为无效.
我发现可以抛出异常,因此对象引用将按预期结束"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) 我正在使用带有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)