相关疑难解决方法(0)

在Python中查找包含它的列表的项目的索引

对于列表["foo", "bar", "baz"]和列表中的项目"bar",如何在Python中获取其索引(1)?

python indexing list

2887
推荐指数
32
解决办法
352万
查看次数

Python 2.X中range和xrange函数有什么区别?

显然xrange更快但我不知道为什么它更快(除了轶事到目前为止没有证据表明它更快)或者除此之外还有什么不同

for i in range(0, 20):
for i in xrange(0, 20):
Run Code Online (Sandbox Code Playgroud)

python loops range xrange python-2.x

690
推荐指数
15
解决办法
36万
查看次数

在Python中以相反的顺序遍历列表

所以我可以从头开始len(collection)并结束collection[0].

编辑:对不起,我忘了提到我也希望能够访问循环索引.

python reverse loops

644
推荐指数
16
解决办法
62万
查看次数

在Python FOR循环中获取循环计数

for循环遍历列表的Python 循环中,我们可以编写:

for item in list:
    print item
Run Code Online (Sandbox Code Playgroud)

它整齐地遍历列表中的所有元素.有没有办法在循环中知道到目前为止我循环了多少次?例如,我想要一个列表,在我处理了十个元素后,我想用它们做一些事情.

我想到的替代方案将是这样的:

count=0
for item in list:
    print item
    count +=1
    if count % 10 == 0:
        print 'did ten'
Run Code Online (Sandbox Code Playgroud)

要么:

for count in range(0,len(list)):
    print list[count]
    if count % 10 == 0:
        print 'did ten'
Run Code Online (Sandbox Code Playgroud)

到目前为止,是否有更好的方法(就像for item in list)获得迭代次数?

python for-loop

236
推荐指数
2
解决办法
30万
查看次数

在Python中迭代带有索引的列表

我可以发誓我已经看到了获取列表的函数(或方法),就像这样,[3, 7, 19]并使其成为可迭代的元组列表,如下所示:[(0,3), (1,7), (2,19)]使用它代替:

for i in range(len(name_of_list)):
    name_of_list[i] = something
Run Code Online (Sandbox Code Playgroud)

但我不记得名称和谷歌搜索"迭代列表"什么都没有.

python list

193
推荐指数
5
解决办法
31万
查看次数

什么是pythonic方法来检测python'for'循环中的最后一个元素?

我想知道对for循环中的最后一个元素进行特殊处理的最佳方法(更紧凑和"pythonic"方式).有一段代码只能元素之间调用,在最后一个元素中被抑制.

以下是我目前的工作方式:

for i, data in enumerate(data_list):
    code_that_is_done_for_every_element
    if i != len(data_list) - 1:
        code_that_is_done_between_elements
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法?

注意:我不想使用hacks,例如使用reduce;)

python for-loop idioms fencepost

166
推荐指数
10
解决办法
15万
查看次数

循环遍历Python中的列表

我有一个包含子列表的列表.我想打印所有长度等于3的子列表.

我在python中执行以下操作:

for x in values[:]:
    if len(x)==3:
        print x
Run Code Online (Sandbox Code Playgroud)

values是原始列表.上面的代码是否打印了每个长度等于3的子列表x?我想只显示length==3一次的子列表.

问题已经解决了.问题出在Eclipse编辑器上.我不明白原因,但是当我运行循环时它只显示我列表的一半.

我有必要在Eclipse中更改任何设置吗?

python list

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

for循环中的Python循环计数器

在我下面的示例代码中,是否真的需要counter = 0,还是有更好的,更多Python的方式来访问循环计数器?我看到了几个与循环计数器相关的PEP,但是它们被推迟或被拒绝(PEP 212PEP 281).

这是我的问题的简化示例.在我的实际应用程序中,这是通过图形完成的,整个菜单必须在每一帧重新绘制.但这表明它以简单的文本方式易于重现.

也许我还应该补充一点,我正在使用Python 2.5,尽管如果有特定于2.6或更高版本的方式我仍然感兴趣.

# Draw all the options, but highlight the selected index
def draw_menu(options, selected_index):
    counter = 0
    for option in options:
        if counter == selected_index:
            print " [*] %s" % option
        else:
            print " [ ] %s" % option
        counter += 1


options = ['Option 0', 'Option 1', 'Option 2', 'Option 3']

draw_menu(option, 2) # Draw menu with "Option2" selected
Run Code Online (Sandbox Code Playgroud)

运行时,输出:

 [ ] Option 0
 [ ] Option 1 …
Run Code Online (Sandbox Code Playgroud)

python loops for-loop

138
推荐指数
2
解决办法
28万
查看次数

"解压缩的值太多"异常

我正在Django的一个项目中工作,我刚开始尝试扩展User模型以制作用户配置文件.

不幸的是,我遇到了一个问题:每次我尝试在模板中获取用户的配置文件时(user.get_template.lastIP例如),我都会收到以下错误:

Environment:

Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.1
Python Version: 2.6.1

Template error:
In template /path/to/base.tpl, error at line 19
   Caught an exception while rendering: too many values to unpack

19 :                Hello, {{user.username}} ({{ user.get_profile.rep}}). How's it goin? Logout


Exception Type: TemplateSyntaxError at /
Exception Value: Caught an exception while rendering: too many values to unpack

关于发生了什么或我做错了什么的想法?

python django

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

循环列表包含内容和索引

这是很常见的,我遍历一个Python列表,让双方的内容他们的索引.我通常做的是以下内容:

S = [1,30,20,30,2] # My list
for s, i in zip(S, range(len(S))):
    # Do stuff with the content s and the index i
Run Code Online (Sandbox Code Playgroud)

我发现这个语法有点难看,尤其是zip函数内部.还有更优雅/ Pythonic的方法吗?

python loops list

91
推荐指数
4
解决办法
13万
查看次数

标签 统计

python ×10

list ×4

loops ×4

for-loop ×3

django ×1

fencepost ×1

idioms ×1

indexing ×1

python-2.x ×1

range ×1

reverse ×1

xrange ×1