Python -- 循环技巧(Looping Techniques)
1.當(dāng)想同時(shí)得到索引和對(duì)應(yīng)的值時(shí),可以用enumerate()函數(shù)
for i, v in enumerate(['tic', 'tac', 'toe']):print i, v 0 tic 1 tac 2 toe?2.要同時(shí)循環(huán)兩個(gè)或多個(gè)序列,可以與zip()函數(shù)配對(duì)。
questions = ['name', 'quest', 'favorite color'] answers = ['lancelot', 'the holy grail', 'blue'] for q, a in zip(questions, answers):print 'what is your {0}? It is {1}.'.format(q, a)------------------------------------------------------ what is your name? It is lancelot. what is your quest? It is the holy grail. what is your favorite color? It is blue.?3.要反向循環(huán)序列,首先是正向的指定序列,然后調(diào)用revers()函數(shù)。
for i in reversed(xrange(1, 10, 2)):print i-------------------------------------- 9 7 5 3 1?4.?要以排序順序循環(huán)序列,請(qǐng)使用sorted()函數(shù),該函數(shù)返回一個(gè)新的排序序列,而不改原來(lái)的序列
basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] for f in sorted(set(basket)):print f ------------------------------------------------------------------- apple banana orange pear?5.當(dāng)循環(huán)使用字典時(shí),可以使用iteritems()方法同時(shí)檢索關(guān)鍵字和對(duì)應(yīng)的值。
knights = {'gallahad': 'the pure', 'robin': 'the brave'} for k, v in knights.iteritems():print k, v --------------------------------------- gallahad the pure robin the brave?6.在循環(huán)序列時(shí)有時(shí)候會(huì)很有挑戰(zhàn)性; 可以創(chuàng)建新列表這樣通常更簡(jiǎn)單和安全。
mport math raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8] filtered_data = [] for value in raw_data:if not math.isnan(value):filtered_data.append(value)print filtered_data ----------------------------------------------------- [56.2, 51.7, 55.3, 52.5, 47.8]?7.不同類型之間序列的比較
序列對(duì)象可以與具有相同序列類型的其他對(duì)象進(jìn)行比較。 比較使用詞典排序:首先比較前兩個(gè)項(xiàng)目,如果它們不同,則決定比較結(jié)果; 如果它們相等,則將下兩個(gè)項(xiàng)目進(jìn)行比較,依此類推,直到任一序列耗盡。 如果要比較的兩個(gè)項(xiàng)目本身是相同類型的序列,則詞典比較是遞歸地進(jìn)行的。 如果兩個(gè)序列的所有項(xiàng)目比較相等,則這些序列被認(rèn)為是相等的。 如果一個(gè)序列是另一個(gè)序列的初始子序列,則較短的序列是較小(較小的)序列。 字符串的字典排序使用單個(gè)字符的ASCII排序。 相同類型的序列之間的比較的一些例子:
(1, 2, 3) < (1, 2, 4) [1, 2, 3] < [1, 2, 4] 'ABC' < 'C' < 'Pascal' < 'Python' (1, 2, 3, 4) < (1, 2, 4) (1, 2) < (1, 2, -1) (1, 2, 3) == (1.0, 2.0, 3.0) (1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)?請(qǐng)注意,比較不同類型的對(duì)象是合法的。 結(jié)果是確定性但是隨意的:類型按照他們的名字排序。 因此,列表始終小于字符串,字符串始終小于元組等。混合數(shù)字類型根據(jù)其數(shù)值進(jìn)行比較,因此0等于0.0等。
?
轉(zhuǎn)載于:https://www.cnblogs.com/wangpfcnblogs/p/6697022.html
總結(jié)
以上是生活随笔為你收集整理的Python -- 循环技巧(Looping Techniques)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C#通过COM组件操作IE浏览器(四):
- 下一篇: websocket python爬虫_p