我的URLconf包含以下模式:
url(r'^accounts/logout/$','django.contrib.auth.views.logout', name="logout"),
Run Code Online (Sandbox Code Playgroud)
我试图在带有URL标记的模板中反转它,如下所示:
<a href="{% url logout next_page=request.path %}">logout</a>
Run Code Online (Sandbox Code Playgroud)
但我不断收到以下错误:
Reverse for 'logout' with arguments '()' and keyword arguments '{'next_page': u'/first-page/child/'}' not found
Run Code Online (Sandbox Code Playgroud)
我认为django.contrib.auth.views.logout应该采取一个选项next_page参数.我确定我错过了一些明显的东西,但我不确定它是什么.
我一直在阅读C++ For Everyone这本书,其中一个练习据说要编写一个string reverse(string str)返回值相反的函数str.
有人可以写一些基本代码并向我解释一下吗?从昨天开始我就一直盯着这个问题而无法理解.我得到的最远的是函数返回的第一个字母str(我还不知道它是怎么回事)
这是我得到的(发布此问题后一小时):
string reverse(string str)
{
string word = "";
if (str.length() <= 1)
{
return str;
}
else
{
string str_copy = str;
int n = str_copy.length() - 1;
string last_letter = str_copy.substr(n, 1);
str_copy = str_copy.substr(0, n);
word += reverse(str_copy);
return str_copy;
}
return word;
}
Run Code Online (Sandbox Code Playgroud)
如果我输入"狼",它将返回Wol.有人帮助我在这里如果我return word而不是return str_copy那时我得到一个w
如果我return last_letter然后我得到一个l
我已经看到这个语法出现在我最近看到的几个代码片段中,我很好奇它的作用.如果我有my_list = [1,2,3,4,5],并执行my_list[::-1],我会给出一个反转元素的列表[5,4,3,2,1].有人可以向我解释这实际上是做什么的,并显示[:]符号和[::]?之间的区别?或者至少向我推荐一个资源.
我敢肯定,如果我有一本好的Python书,它会在那里,但我没有.因为[::]被忽略了,所以不可能在谷歌搜索这样的东西.谢谢!
以下是如何对通用视图object_detail使用reverse的问题?
如果我像下面这样使用它,则错误消息将是:NoReverseMatch at/comment/add/Reverse for''with arguments'()'和关键字参数'{}'未找到.
在views.py中:
urlresolvers.reverse('django.views.generic.list_detail.object_detail')
return HttpResponseRedirect(resp)
Run Code Online (Sandbox Code Playgroud)
在urls.py中
common_info_dict = {
'extra_context':{
'blogtitle':"Thinking",
'blogsubtitle':"- blog system",
'articles_count':Entry.objects.count,
'comments_count': 0,
'visitors_count' : 0,
'category_list':Category.objects.all,
'tag_list':Tag.objects.all,
'comment_form': CommentForm,
},
}
object_detail_info_dict = {
'queryset': Entry.objects.all(),
'slug_field': 'slug',
'template_object_name': 'post',
}
object_detail_info_dict.update(common_info_dict)
urlpatterns += patterns('django.views.generic.list_detail',
(r'^posts/(?P<slug>[-\w]+)/$', 'object_detail', object_detail_info_dict),
)
Run Code Online (Sandbox Code Playgroud) 我是否可以获得具有两个参数的递归Prolog谓词,称为reverse,它返回列表的反转:
示例查询和预期结果:
?- reverse([a,b,c], L). L = [c,b,a].
两个参数的递归Prolog谓词,palindrome如果给定列表是回文,则返回true.
具有预期结果的示例查询:
?- palindrome([a,b,c]). false. ?- palindrome([b,a,c,a,b]). true.
如何在Python中反转单词?
例如:
SomeArray=('Python is the best programming language')
i=''
for x in SomeArray:
#i dont know how to do it
print(i)
Run Code Online (Sandbox Code Playgroud)
结果必须是:
egaugnal gnimmargorp tseb eht si nohtyP
Run Code Online (Sandbox Code Playgroud)
请帮忙.并解释.
PS:
我不能用[::-1].我知道这件事.我必须在面试中这样做,只使用循环:)
老实说,我只是不明白为什么会返回None而不是反向列表:
>>> l = range(10)
>>> print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print l.reverse()
None
Run Code Online (Sandbox Code Playgroud)
为什么会这样?根据文件,我没有做错任何事.
现在我最近看到了这个问题(不记得在哪里)关于通过专门反转子列表对数字列表进行排序需要多少操作。
这是一个示例:
未排序的输入:3, 1, 2, 5, 4
可能的答案之一是:
1. 反向索引 0 到 3,给出5, 2, 1, 3, 4
2. 反向索引 0 到 4,给出4, 3, 1, 2, 5
3. 反向索引 0 到 3,给出2, 1, 3, 4, 5
4. 反向索引 0 到 1,给出1, 2, 3, 4, 5
然而,在尝试解决这个问题之后,事实证明对于没有算法经验的人来说,实际上很难创建一段找到最佳解决方案的代码。上面提到的答案只是通过强制所有可能的组合来完成,但是当列表超过 10 个数字时,这会变得非常慢(10 个数字 <2 秒,14 个数字超过 10 分钟)。重新调整任何现有的排序算法也不起作用,因为它们被构建为一次只交换单个元素(并且通过反转子列表来交换 2 个数字将需要 1-2 次操作,这根本不是最佳的)。我也尝试过对网络进行排序,因为在运行程序之前已经确定了最大大小,但是我也没有太多运气(它们也依赖于交换,当您能够一次交换多个时,这是低效的)。我还尝试制作一个可以“优化”一系列操作的函数,以尝试使现有的排序算法可行,但这些答案也比最佳答案长得多(想想 16 对 6)。
因此,在花了相当多的时间之后,我找不到更好的方法来找到最短的解决方案,而不是强制执行它。作为一名学生,我在排序、算法和其他数学“魔法”方面没有太多经验,但我想知道这里是否有人可以尝试一下。最好的答案当然只是给出一个提示,因为我不介意尝试通过 StackOverflow 周围漂浮的更聪明的思想的一些提示来解决它。
假设所有数字都是唯一的,并且在 0 - 100 的范围内(两者都是独占的)。数组的长度类似于3 < N < 15,因为我似乎记得原来的问题也不使用大数组。
如何从末尾迭代一个简单的Lua表,这是一个序列?
想要的行为示例:
local mytable = {'a', 'b', 'c'}
for i, value in reversedipairs(mytable) do
print(i .. ": " .. value)
end
Run Code Online (Sandbox Code Playgroud)
应该输出
3: c
2: b
1: a
Run Code Online (Sandbox Code Playgroud)
这里怎么实现reversedipairs?
我想迭代从 Digikey api 接收到的数据列表,任何谷歌搜索都没有太多运气,因为该功能enumerate(reversed(part.standard_pricing))不起作用,并且part.standard_pricing由于某种原因您无法逆转类似的事情是需要的:
for b_idx in range(part.standard_pricing, -1, -1):
print(f"Test at: {b_idx} , Q: {part.standard_pricing[b_idx].break_quantity}")
if PCountQ >= part.standard_pricing[b_idx].break_quantity:
parts_df['PRICE_PER_PCB_Q'][idx] = part.standard_pricing[b_idx].unit_price * PCountQ
break
Run Code Online (Sandbox Code Playgroud)
但范围也不适用于列表......
我想这样做:
for b_idx, price_break in enumerate(part.standard_pricing):
Run Code Online (Sandbox Code Playgroud)
只是从末尾开始part.standard_pricing,让索引减少而不是增加
关于如何以Python方式做到这一点有什么想法吗?