python學習筆記 迭代與生成式

2021-08-26 05:31:30 字數 2178 閱讀 6182

iterable : 可迭代的;可以for迴圈;

列表生成式

import random

li =

# for i in range(10):

## 普通的列表生成式;

print([random.randint(1,10) for i in range(10)])

print([i*i for i in range(1,8)])

# 公升級版本

# 1. 找出1~10之間所有的偶數;

print([i for i in range(1,11) if i%2==0])

# 2. 找出1~1000之間所有的質數;

defisprime

(num):

pass

print([i for i in range(1,1001) if isprime(i)])

# 3.for巢狀for迴圈;

# 'abc', '123'

print([i+j for i in

'abc'

for j in

'123'])

[8, 9, 7, 9, 6, 1, 7, 1, 4, 5]

[1, 4, 9, 16, 25, 36, 49]

[2, 4, 6, 8, 10]

['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']

列表生成式練習
# 1. 找出/var/log/目錄中,所有以.log結尾的檔名或者目錄名;

# os.listdir('/var/log/')

import os

print([filename for filename in

os.listdir('/var/log') if filename.endswith('.log')])

# 2. 將列表中所有內容都變為小寫;

li = ['frdgrfgdshhjj', 'cdsfreghhhjdgf']

print([i.lower() for i in li])

字典生成式
d = dict(a=1,b=2)

print("小寫的字典:", d)

# 1. 需求1: 將所有的key值變為大寫;

# 1-1. 傳統方法:

new_d = {}

for i in d: # 'a' 'b'

new_d[i.upper()] = d[i]

print("key轉化為大寫的字典:", new_d)

# 1-2. 公升級

print()

# # 需求2:大小寫key值合併, 統一以小寫key值輸出;

d = dict(a=2, b=1, c=2, b=9, a=5)

## 2-2. 字典生成式:

print()

# 2-1. 傳統方法:

# new_d = {}

for k, v in d.items():

low_k = k.lower()

if low_k not

in new_d:

new_d[low_k] = v

else:

new_d[low_k] += v

print(new_d)

# 需求3: 把字典的key和value值調換;

d =

print()

小寫的字典: 

key轉化為大寫的字典:

集合生成式
print(})

print( if i % 3 == 0})

斐波那契數列
列印斐波那契數列列前十十列列,示例例如下(語言言不不限):11

2358

1321

3455 ....

deffib

(num):

a, b, count = 0, 1, 1

while count <= num:

print(b)

a, b = b, a + b #a=2, b=3

count += 1

fib(90)

python學習(五)迭代與函式

next 方法,獲取下乙個元素 next 函式 迭代器物件 已經實現迭代協議 例如 檔案 可迭代物件 iter iter 用於生成迭代器 例如 列表 另 用iter m is m來判斷是否m是可迭代物件 range map result list map 函式,列表 這種方法可以將列表中元素都執行一...

python 迭代與函式

返回結果是乙個列表 function 傳的是乙個函式名,可以是python內建的,也可以是自定義的。就像上面的匿名函式lambda iterable 傳的是乙個可以迭代的物件,例如列表,元組,字串這樣的。map 用法 a 1,2,3 y map lambda x x 1,a print list y...

Python技巧 物件迭代與反迭代

welcome to my blog 例項化iter 由可迭代物件得到迭代器 通過給iter 傳入可迭代物件 也就是例項化iter這個物件 得到迭代器物件 可迭代物件 列表,字串,元組,字典 iter 的定義中 the argument must supply its own iterator,or...