如果我的函数在函数结束时为空,我正在努力寻找一种更简洁的返回布尔值的方法
我取两组的交集,并希望返回True
或False
基于结果集是否为空.
def myfunc(a,b):
c = a.intersection(b)
#...return boolean here
Run Code Online (Sandbox Code Playgroud)
我最初的想法是做
return c is not None
Run Code Online (Sandbox Code Playgroud)
但是,在我的翻译中,我可以很容易地看到该语句将返回true c = set([])
>>> c = set([])
>>> c is not None
True
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下所有方法:
>>> c == None
False
>>> c == False
False
>>> c is None
False
Run Code Online (Sandbox Code Playgroud)
现在,我已经从我只能用文档阅读and
,or
以及not
与空集来推断一个布尔值.到目前为止,我唯一能想到的就是回归而不是c
>>> not not c
False
>>> not c
True
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,有更多的pythonic方式来做到这一点,我正在努力找到它.我不想将实际的设置返回到if语句,因为我不需要值,我只想知道它们是否相交.
在我的第一个django应用程序上工作,我有一个模型定义了一些DateFields
,然后是一个ModelForm
模型,即
models.py
class MyModel(models.Model):
...
my_date = models.DateField('my date')
...
class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
views.py
def show(request):
form = MyModelForm
template_name = 'myapp/show.html'
return render(request,template_name,{'form':form})
Run Code Online (Sandbox Code Playgroud)
然后在我的HTML中我使用.as_p
django为我渲染表单
<form action="/show/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
但是DateFields
有输入类型文本,而不是日期.有没有办法改变这个?
因此,我中的函数程序员喜欢像python这样的语言,它们将函数视为一等公民。看起来Java 8承受了压力,而诸如lambda表达式和方法引用之类的“已实现的”东西则被淘汰了。
我的问题是,Java是否正在使用一流的函数,或者这真的只是语法糖,以减少实现匿名类/接口(如可运行的接口)所需的代码量?(我的肠子说后者)。
我理想的情况
Map<String,DoubleToDoubleFunc> mymap = new HashMap<String,DoubleToDoubleFunc>();
...
mymap.put("Func 1", (double a, double b) -> a + b);
mymap.put("Func 2", Math::pow);
...
w = mymap.get("Func 1")(y,z);
x = mymap.get("Func 2")(y,z);
Run Code Online (Sandbox Code Playgroud) 嘿,我有一个列表,我希望得到它的所有不同的排列,即[A,B,C].
我想要它的所有不同组合.像[A,C,B],[B,A,C],[B,A,C],[C,A,B]和[C,B,A]我尝试使用itertools.combinations,我得到所有组合只是没有使用所有字母的组合.
matriks = ["A","B","C"]
combs=[]
for i in xrange(1, len(matriks)+1):
els = [list(x) for x in itertools.combinations(matriks, i)]
combs.append(els)
print(combs)
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出
[[['A'], ['B'], ['C']], [['A', 'B'], ['A', 'C'], ['B', 'C']], [['A', 'B', 'C']]]
Run Code Online (Sandbox Code Playgroud) python ×3
django ×1
django-forms ×1
java ×1
java-8 ×1
list ×1
python-2.7 ×1
sorting ×1
swap ×1