我希望函数的结果是:
这是我的尝试:
>>> def consistent(x):
... x_filtered = filter(None, x)
... return len(x_filtered) in (0, len(x))
...
>>> consistent((0,1))
False
>>> consistent((1,1))
True
>>> consistent((0,0))
True
Run Code Online (Sandbox Code Playgroud)
[奖金]
该功能应该命名为什么?
有没有人知道像记事本++的pylint或pychecker之类的东西?或者也许如何在记事本++中使用pylint.
我一直在寻找一种优雅的方式来代表Django模型中的多选工作日领域(周一,周二,周三......).我最初想的是使用按位数学运行整数字段,但我不确定这是否可行.
这将是一个主要阅读的领域.我希望Queryset方法类似于Entry.objects.get(weekdays__contains=MONDAY)
Where MONDAY
将是一个常量.
也许有人可以提出更好的解决方案?或者也许有人做过类似的事情并且有一些他们可以贡献的示例代码?
我的(简化)模型:
class Stop(models.Model):
EXPRESS_STOP = 0
LOCAL_STOP = 1
STOP_TYPES = (
(EXPRESS_STOP, 'Express stop'),
(LOCAL_STOP, 'Local stop'),
)
name = models.CharField(max_length=32)
type = models.PositiveSmallIntegerField(choices=STOP_TYPES)
price = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)
def _get_cost(self):
if self.price == 0:
return 0
elif self.type == self.EXPRESS_STOP:
return self.price / 2
elif self.type == self.LOCAL_STOP:
return self.price * 2
else:
return self.price
cost = property(_get_cost)
Run Code Online (Sandbox Code Playgroud)
我的目标:我想按照cost
物业排序.我尝试了两种方法.
Stops.objects.order_by('cost')
Run Code Online (Sandbox Code Playgroud)
这产生了以下模板错误:
Caught FieldError while rendering: Cannot resolve keyword 'cost' into …
Run Code Online (Sandbox Code Playgroud) 我有一个处理GET请求的Django视图.我想重建查询字符串以包含除一个之外的所有变量.
我最初使用列表理解:
>>> from django.http import QueryDict
>>> q = QueryDict('a=2&b=4&c=test') // <--- make believe this is request.GET
>>> z = QueryDict('').copy()
>>> z.update(dict([x for x in q.items() if x[0] != 'b']))
>>> z.urlencode()
Run Code Online (Sandbox Code Playgroud)
但我相信这可能是一个更好的解决方案:
>>> from django.http import QueryDict
>>> q = QueryDict('a=2&b=4&c=test') // <--- make believe this is request.GET
>>> z = q.copy()
>>> del z['b']
>>> z.urlencode()
Run Code Online (Sandbox Code Playgroud)
谁能想到更好的方法?
我有一个Django表单,其中一个字段是TextInput
街道地址.
我想规范化数据.例如:
>> normalize('420 East 24th St.')
'420 E. 24th Street'
>> normalize('221 Amsterdam Av')
'221 Amsterdam Ave.'
>> normalize('221 Amsterdam Avenue')
'221 Amsterdam Ave.'
Run Code Online (Sandbox Code Playgroud)
或类似的东西.我已经在使用geopy进行地理编码了.也许这可能有帮助吗?
另外:我应该在哪里正常化?在数据库模型中还是在表单字段的clean函数中?
我的模型中有一个需要计算的字段.我想在保存模型时执行这些计算.但是,因为它是资源密集型的,所以我只想在某些字段发生变化时执行这些计算.
将3个字段的哈希值保留为模型中的不同字段.在保存时,散列三个字段,如果等于当前在模型中保存的字段,则继续保存实例而无需进一步的工作.否则,执行计算,保存计算结果并保存新哈希.
这是最好的选择吗?如果没有,请分享哪些更好,为什么.
如果没有更好的方法:我应该使用哪种哈希?为什么?
我应该使用哪种Django模型字段类型来保存哈希?
我得到了一周中的一天.我想做的Python代码:
def week_days_to_string(week_days):
"""
>>> week_days_to_string(('Sunday', 'Monday', 'Tuesday'))
'Sunday to Tuesday'
>>> week_days_to_string(('Monday', 'Wednesday'))
'Monday and Wednesday'
>>> week_days_to_string(('Sunday', 'Wednesday', 'Thursday'))
'Sunday, Wednesday, Thursday'
"""
if len(week_days) == 2:
return '%s and %s' % weekdays
elif week_days_consecutive(week_days):
return '%s to %s' % (week_days[0], week_days[-1])
return ', '.join(week_days)
Run Code Online (Sandbox Code Playgroud)
我只需要week_days_consecutive
功能(困难部分).
任何想法我怎么能做到这一点?
澄清:
我的措辞和例子引起了一些混乱.我不仅希望将此功能限制在工作周.我想考虑一周中的所有日子(S,M,T,W,T,F).我很抱歉昨晚不清楚这一点.编辑了问题的正文,使其更加清晰.
编辑:把一些扳手扔进去
环绕顺序:
>>> week_days_to_string(('Sunday', 'Monday', 'Tuesday', 'Saturday'))
'Saturday to Tuesday'
Run Code Online (Sandbox Code Playgroud)
并且,根据@ user470379和可选:
>>> week_days_to_string(('Monday, 'Wednesday', 'Thursday', 'Friday'))
'Monday, Wednesday to Friday'
Run Code Online (Sandbox Code Playgroud) 我们正在考虑实施投票系统(向上,向下投票),而不使用任何类型的凭证 - 没有应用账户,也没有OpenID或任何类型的.
关注点:
我的问题:
如果您有任何问题可以帮助您形成对这些问题的答案,请在评论中提问!
使用Python检索街道地址的美国邮政编码的最有效方法是什么?这有可能吗?
优选地,包括本地数据库的东西与某种远程API调用相反。
预先感谢您可能提供的任何帮助。