首页 » InfoTech »

创建Python的For循环

2016年12月1日 / 68次阅读
Python

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

特色图片

本文记录一下Python可以通过哪些神奇的方式来创建for循环,对于C语言高手而言,看到这样的语句,一定会惊叹Python的简洁和强大。

 

>>> for i in (1,2,3): # tuple
...    i
...
1
2
3
>>> for s in ('1','2','3'): #tuple and string
...     s
...
'1'
'2'
'3'
>>> for s in ('1','2','3','aaa'):
...     s
...
'1'
'2'
'3'
'aaa'
>>>
>>> for s in ['1','2','3','aaa']: # list is also ok
...     s
...
'1'
'2'
'3'
'aaa'
>>> for s in '12345': # a string,great
...     s
...
'1'
'2'
'3'
'4'
'5'
>>> for x in range(10): # range builtin
...     x
...
0
1
2
3
4
5
6
7
8
9
>>>

 

对于dict数据,可以使用items方法,代码如下:

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
...     print(k, v)
...
gallahad the pure
robin the brave

通过help的查看dict的items方法,这个方法返回一个set-like ojbect。

 

可以使用enumerate()方法,将set数据转换成有index的数据:

>>>
>>> for i,v in enumerate(se1):
...     print(i,v)
...
0 1.2
1 3
2 4
3 5
>>> se1
{1.2, 3, 4, 5}
>>>

 

2018-09-27:

用for循环遍历List的时候,循环内部不要改变这个List,否则可能陷入死循环,如下代码就是一个死循环:

words = ['cat', 'window', 'defenestrate']
for w in words:  
    if len(w) > 6:
        words.insert(0, w)  # words has been changed, dead loop.

正确的写法要使用List的浅拷贝,代码如下:

words = ['cat', 'window', 'defenestrate']
for w in words[:]:  # Loop over a slice copy of the entire list.
    if len(w) > 6:
        words.insert(0, w)

for循环在words[:]上进行,循环内对words进行改变。

还有一种另外的正确写法,代码如下:

words = ['cat', 'window', 'defenestrate']
for i in range(len(words)): 
    if len(words[i]) > 6:
        words.insert(0, words[i])

这说明,for循环需要的数据,在进入for循环的时候,只产生一次。最初那个循环的错误,在于直接去List中的值,而List在不断变长,所以陷入了死循环。

本文链接:http://www.maixj.net/ict/python-for-13716
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

《创建Python的For循环》有7条评论

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.

  • 麦新杰

    Python’s for statement iterates over the items of any sequence (a list or a string), in the order that they appear in the sequence. [ ]

  • 麦新杰

    for后面接多个变量时:

    >>> for x, y in [(1, 1), (2, 4), (3, 9)]:
    ...     print(x, y)
    ...
    1 1
    2 4
    3 9
    [ ]

  • 麦新杰

    for ... in ... 只要是iterable object都可以。 [ ]

  • 麦新杰

    默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。 [ ]

  • 麦新杰

    遍历dict,默认是key:

    >>> d = {'a': 1, 'b': 2, 'c': 3}
    >>> for key in d:
    ...     print(key)
    ...
    a
    c
    b
    [ ]

  • builtin里面有函数,有class,有异常;for in 后面接的是一个object。 [ ]


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目

AD

ppdai

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top