如何访问索引本身以获取如下列表?
ints = [8, 23, 45, 12, 78]
for i in ints:
print('item #{} = {}'.format(???, i))
Run Code Online (Sandbox Code Playgroud)
当我使用循环遍历它时for,如何访问循环索引,在这种情况下从1到5?
我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).
对我来说,这种符号需要一点点提升.
它看起来非常强大,但我还没有完全了解它.
有没有更简单的方法将列表中的字符串项连接成一个字符串?
我可以使用该str.join()功能加入列表中的项目吗?
例如,这是输入['this','is','a','sentence'],这是所需的输出this-is-a-sentence
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
Run Code Online (Sandbox Code Playgroud) Python范围规则究竟是什么?
如果我有一些代码:
code1
class Foo:
code2
def spam.....
code3
for code4..:
code5
x()
Run Code Online (Sandbox Code Playgroud)
在哪里x找到?一些可能的选择包括以下列表:
在执行期间,当函数spam在其他地方传递时,也存在上下文.也许lambda函数的传递方式有点不同?
某处必须有简单的参考或算法.对于中级Python程序员来说,这是一个令人困惑的世界.
我理解这个结构是如何工作的:
for i in range(10):
print(i)
if i == 9:
print("Too big - I'm giving up!")
break;
else:
print("Completed successfully")
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么else在这里用作关键字,因为它表明有问题的代码仅在for块未完成时运行,这与它的作用相反!无论我如何看待它,我的大脑都无法从for语句无缝地进展到else块.对我来说,continue或者continuewith更有意义(我正在努力训练自己阅读它).
我想知道Python编码器如何在他们的脑海中读取这个结构(或者如果你愿意的话,大声朗读).也许我错过了一些会让这些代码块更容易破译的东西?
我不是在问Python的范围规则; 我一般都了解 Python for循环中的作用域是如何工作的.我的问题是为什么设计决策是以这种方式做出的.例如(没有双关语):
for foo in xrange(10):
bar = 2
print(foo, bar)
Run Code Online (Sandbox Code Playgroud)
以上将打印(9,2).
这让我感到很奇怪:'foo'实际上只是控制循环,而'bar'是在循环中定义的.我可以理解为什么'bar'可能需要在循环外部访问(否则,for循环将具有非常有限的功能).我不明白为什么在循环退出后控制变量必须保持在范围内.根据我的经验,它只会使全局命名空间变得混乱,并且更难以追踪其他语言中的解释器会捕获的错误.
我想循环检查每个项目的列表与其后面的项目.
有没有办法可以循环使用除了最后一项使用x中的所有项目?如果可以的话,我宁愿不使用索引.
注意
freespace回答了我的实际问题,这就是我接受答案的原因,但是SilentGhost回答了我应该问的问题.
为混乱道歉.
我有时需要在Python中迭代一个列表,查看"current"元素和"next"元素.到目前为止,我已经完成了以下代码:
for current, next in zip(the_list, the_list[1:]):
# Do something
Run Code Online (Sandbox Code Playgroud)
这有效并且符合我的预期,但是有更多惯用或有效的方法来做同样的事情吗?
我需要对列表中的最后一个元素进行一些特殊操作.还有比这更好的方法吗?
array = [1,2,3,4,5]
for i, val in enumerate(array):
if (i+1) == len(array):
// Process for the last element
else:
// Process for the other element