in [1]: fromrandom import randint
in [2]: data=[randint(-10,10) for _ in range(10)]
in [3]: data
out[3]: [-3, -4, 3, 4, 7, -2, -4, 1, 7, -9]
#過濾列表中的負數
in [9]: list(filter(lambda x:x>=0,data))
out[9]: [3, 4, 7, 1, 7]
[for x in data if x>=0]
# 列表生成式解法
[xfor x in data if x>=0]
#哪個更快,列表解析更快,遠快於迭代
in [15]: %timeit [x for x in data if x>=0]581 ns ± 23.8 ns per loop (mean ± std. dev. of 7 runs, 1000000loops each)
in [16]: %timeit filter(lambda x:x>=0,data)237 ns ± 4 ns per loop (mean ± std. dev. of 7 runs, 1000000loops each)
#得到20個同學的成績
d=#字典解析式,iteritems同時迭代字典,
#得到分數大於90的同學
#集合解析
in [35]:
out[35]:
#為元祖中的每個元素命名,提高程式可讀性
#元祖儲存空間小,訪問速度快
#定義常量
name= 0age=1***=2email=3#拆包用法,定義類似其他語言的列舉型別,也就是定義數值常量
name,age,***,email=range(4)
#案例student=('jim',16,'male','[email protected]')
#name
print(student[0])
#age
print(student[1])
#通過常量可以優化為
print(student[name])
print(student[age])
#namedtuple是繼承自tuple的子類,namedtuple和tuple比較有更酷的特性
#namedtuple建立乙個和tuple類似的物件,而且物件擁有可以訪問的屬性。這物件更像帶有資料屬性的類,不過資料屬性是唯讀的。fromcollections import namedtuple
student= namedtuple('student',['name','age','***','email'])
s=student('jim',16,'male','[email protected]')
s.name
s.age
#統計序列中元素出現的頻度fromrandom import randint
data=[randint(0,20) for _ in range(30)]
#建立字典
#方法1
c=dict.fromkeys(data,0)
in [52]: for x indata:
...: c[x]+=1#方法2,統計詞頻fromcollections import counter
c2=counter(data)#講序列傳入counter的構造器,得到counter物件是元素頻度的字典
#使用most_common統計詞頻
in [58]: c2.most_common(3)
out[58]: [(10, 4), (20, 3), (8, 3)]
#統計英文作文詞頻
import re
txt=open('emmmm.txt').read()
#分割後賦給counter
c3=counter(re.split('\w',txt))
#找到頻率最高的10個單詞
c3.most_common(10)
#內建函式是以c的速度執行,如sortedfromrandom import randintd=#
# sorted(d)
in [15]: zip(d.values(),d.keys())
out[15]: in [16]: list(zip(d.values(),d.keys()))
out[16]: [(68, 'x'), (70, 'y'), (77, 'z'), (72, 'a'), (65, 'b'), (69, 'c')]
#快速找到多個字典中的公共鍵
#in [1]: fromrandom import randint,sample
in [2]: sample('abcdefg',3)
out[2]: ['c', 'a', 'b']
in [4]: sample('abcdefg',randint(3,6))
out[4]: ['b', 'a', 'd']
in [5]: s1=
in [9]: s1
out[9]:
in [10]: s1=
in [11]: s1
out[11]:
in [12]: s1
out[12]:
in [13]: s2=
in [15]: s3=
#for迴圈遍歷方法,找到s2,s3都有的k
in [19]: res=
in [20]: for k ins1:
...:if k in s2 and k ins3:
in [21]: res
out[21]: ['b']
#通過字典的keys()方法,找到三個字典同樣的key
in [26]: s1.keys()&s2.keys()&s3.keys()
out[26]:
#通過map得到乙個迭代器物件
#in [27]: map(dict.keys,[s1,s2,s3])
out[27]: in [28]: list(map(dict.keys,[s1,s2,s3]))
out[28]:
[dict_keys(['g', 'd', 'b']),
dict_keys(['g', 'a', 'c', 'b', 'f']),
dict_keys(['d', 'f', 'b', 'c', 'e', 'a'])]
#通過reduce取出同樣結果
in [30]: fromfunctools import reduce
in [31]: reduce(lambda a,b:a&b,map(dict.keys,[s1,s2,s3]))
out[31]:
#使得fromtime import timefromrandom import randintfromcollections import ordereddict
d=ordereddict()
players= list("abcdefgh")
start=time()for i in range(8):
input()
p=players.pop(randint(0,8-i))
end=time()
print(i+1,p,end-start)
d[p]=(i+1,end-start)
print('')
print('-'*20)for k ind:
print(k,d[k])
#檢視使用者歷史記錄功能,標準庫collections的deque,雙端迴圈佇列,存在內容中,pickle儲存到檔案fromrandom import randintfromcollections import deque
n= randint(0,100)
history= deque(,5)
def guess(k):if k ==n:
print('正確')returntrueif k
print('%s is less-than n'%k)else:
print("%s is greater-than n"%k)returnfalsewhiletrue:
line= input("請輸入乙個數字:")ifline.isdigit():
k=int(line)
print(list(history))
Python3 介面自動化 1 基礎介紹
一 請求包括哪些內容 1.請求位址 2.請求方法 3.請求引數 4.請求響應 二 http請求包含三個部分 2.訊息頭 content type content length 3.請求正文 請求引數 三 get和post請求的特點 1.get請求 請求引數放在位址上面,已?打頭,引數是鍵值對存在,多...
Python3 介面自動化 1 基礎介紹
一 請求包括哪些內容 1.請求位址 2.請求方法 3.請求引數 4.請求響應 二 http請求包含三個部分 2.訊息頭 content type content length 3.請求正文 請求引數 三 get和post請求的特點 1.get請求 請求引數放在位址上面,已?打頭,引數是鍵值對存在,多...
Python3介面自動化框架 設計框架日誌系統
介面自動化測試框架之設計日誌系統 日誌可以幫助程式設計師快速定位並解決問題,日誌系統在任何程式系統中都必不可少,日誌的收集也同樣有更多的日誌框架或工具支援。關於下面長篇的大論,其實只要三行 就可以完事了。不信請看最後面 coding utf 8 author qguan import os impo...