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...