1. 程式人生 > >python中的生成器表達式,各種推導式及內置函數

python中的生成器表達式,各種推導式及內置函數

glob 寫入 ash == 列表推導 enume req 余數 mes

一:列表推導式

表現形式:[變量(加工後的數據) for 變量i in 可叠代的數據類型]

例一:30以內所有能被3整除的數

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

例二:30以內所有能被3整除的數的平方

l1=[i**2 for i in range(1,31) if i%3==0]
print(l1)

例三:找到嵌套列表中名字含有兩個‘e’的所有名字

names = [[Tom, Billy, Jefferson
, Andrew, Wesley, Steven, Joe], [Alice, Jill, Ana, Wendy, Jennifer, Sherry, Eva]] l1=[name for i in names for name in i if name.count("e")==2] print(l1)

ps:把列表解析的[]換成()得到的就是生成器表達式,其中,列表推導式比較直觀,占內存,生成器表達式不容易看出內容,省內存.

l1=(i**2 for i in range(1,31) if i%3==0)
print(l1)    #
<generator object <genexpr> at 0x000001DE23D4DE58> print(l1.__next__())
二:字典推導式
例一:將一個字典的key和value對調
mcase = {a: 10, b: 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency)

三:集合推導式

計算列表中每個值的平方,自帶去重功能。

squared = {x**2 for x in [1, -1, 2]}
print(squared)
# Output: set([1, 4])

四:python中的內置函數

1,print的用法

#1,去掉換行符
print(666,end=‘‘)
print(666)
#2,添加分割符
print(1,2,3,4,5,sep=|)      #1|2|3|4|5
#3,寫入文件
f = open(file,w,encoding=utf-8)
print(666,file=f)
f.close()

2,

locals() 將局部的變量儲存起來
globals() 將全局的變量,函數名,等等 儲存起來.

def func():
    name = alex
    print(locals())
    print(globals())
func()

3 , help(xxx) 將你查詢的對象所有信息都拿出來.

4 , abs()取絕對值

print(abs(-1))
print(abs(1))

5, 最大值和最小值

#1求絕對值最大的數
ret = max(1,2,-3,key=abs)
print(ret)
#2求最小值
ret = min([1,2,3])
print(ret)

6,sum 求和

a=sum([1,2,8])
print(a)
#計算列表中的和,再附加一個數的和
ret = sum([1,2,3],10)
print(ret)

7,callable 判斷此變量是不是函數名

name = alex
print(callable(name))

def func():
    print(666)
print(callable(func))

8, hash() 通過哈希表的規則,將對象轉換成哈希值

print(hash(fdsakfhdsafsda))
print(hash(fd))
print(hash((a,b)))
print(hash(True))

9, all 可叠代對象裏面的所有的值轉化成bool值如果都是True則,返回True

print(all([1,2,3,0]))

10, 進制轉換

#十進制轉化成二進制
print(bin(100))
#將十進制轉化成八進制
print(oct(9))
#將十進制轉化成十六進制
print(hex(33))

11,數據類型 float ,complex(復數)

print(1.35432,type(1.35432))
print(float(3))

12, divmod() 分頁

print(divmod(7,2)) #(商,余數)

13, enumerate(iterable,start 起始值) 枚舉

l = [‘手機‘,‘電話‘,‘娃娃‘,]
for k,v in enumerate(l,1):
print(k,v)

14, eval 有返回值 除去字符串兩邊的引號,返回裏面的內容
exec 沒有返回值 除去字符串兩邊的引號,執行裏面的代碼

s = "{‘name‘:‘alex‘}"
print(eval(s),type(eval(s)))    #{‘name‘: ‘alex‘} <class ‘dict‘>
s1 = "1+2+3+4"
print(eval(s1))       #10
code = ‘‘‘for i in range(10):
    print(i)‘‘‘
exec(code)
































































python中的生成器表達式,各種推導式及內置函數