91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何高效處理數據類型

發布時間:2022-03-22 09:21:53 來源:億速云 閱讀:188 作者:小新 欄目:開發技術

小編給大家分享一下python如何高效處理數據類型,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

高效處理數據類型方法:

處理數據

In [1]: from random 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]
# 列表生成式解法
[x for 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, 1000000 loops each)

In [16]: %timeit filter(lambda x:x>=0,data)
237 ns ± 4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

#得到20個同學的成績
d={x:randint(60,100)for x in range(1,21)}
#字典解析式,iteritems同時迭代字典,
#
#得到分數大于90的同學
{k:v for k,v in d.items() if v>90}


#集合解析
In [35]: {x for x in s if x %3 ==0}
Out[35]: {-9, -3, 3}

#為元祖中的每個元素命名,提高程序可讀性
#元祖存儲空間小,訪問速度快
#定義常量
NAME = 0
AGE=1
SEX=2
EMAIL=3
#拆包用法,定義類似其他語言的枚舉類型,也就是定義數值常量
NAME,AGE,SEX,EMAIL=range(4)

#案例
student=('Jim',16,'male','jin@163.com')
#name
print(student[0])
#age
print(student[1])
#通過常量可以優化為
print(student[NAME])
print(student[AGE])

#namedtuple是繼承自tuple的子類,namedtuple和tuple比較有更酷的特性
#namedtuple創建一個和tuple類似的對象,而且對象擁有可以訪問的屬性。這對象更像帶有數據屬性的類,不過數據屬性是只讀的。
from collections import namedtuple
Student = namedtuple('Student',['name','age','sex','email'])
s=Student('Jim',16,'male','jim@163.com')
s.name 
s.age

#統計序列中元素出現的頻度
from random import randint
data=[randint(0,20) for _ in range(30)]
#創建字典{0:0,1:0,...}
#方法1
c=dict.fromkeys(data,0)
In [52]: for x in data:
  ...:   c[x]+=1

#方法2,統計詞頻
from collections 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的速度運行,如sorted
from random import randint 
d={x:randint(60,100) for x in 'xyzabc'}
#{'a': 91, 'b': 65, 'c': 76, 'x': 85, 'y': 84, 'z': 72}
# sorted(d)
In [15]: zip(d.values(),d.keys())
Out[15]: <zip at 0x108b34dc8>

In [16]: list(zip(d.values(),d.keys()))
Out[16]: [(68, 'x'), (70, 'y'), (77, 'z'), (72, 'a'), (65, 'b'), (69, 'c')]

#快速找到多個字典中的公共鍵
#In [1]: from random 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={x:randint(1,4)for x in sample('abcdefg',randint(3,6))}

In [9]: s1
Out[9]: {'a': 1, 'b': 2, 'c': 3, 'f': 3, 'g': 3}

In [10]: s1={x:randint(1,4)for x in sample('abcdefg',randint(3,6))}

In [11]: s1
Out[11]: {'b': 2, 'd': 3, 'g': 3}

In [12]: s1
Out[12]: {'b': 2, 'd': 3, 'g': 3}

In [13]: s2={x:randint(1,4)for x in sample('abcdefg',randint(3,6))}

In [15]: s3={x:randint(1,4)for x in sample('abcdefg',randint(3,6))}
#for循環遍歷方法,找到s2,s3都有的k
In [19]: res=[]

In [20]: for k in s1:
  ...:   if k in s2 and k in s3:
  ...:     res.append(k
  ...:     )
  ...:     
  ...:     

In [21]: res
Out[21]: ['b']
#通過字典的keys()方法,找到三個字典同樣的key
In [26]: s1.keys()&s2.keys()&s3.keys()
Out[26]: {'b'}
#通過map得到一個迭代器對象
#In [27]: map(dict.keys,[s1,s2,s3])
Out[27]: <map at 0x108891b70>

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]: from functools import reduce

In [31]: reduce(lambda a,b:a&b,map(dict.keys,[s1,s2,s3]))
Out[31]: {'b'}

#使得
from time import time
from random import randint
from collections 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 in d:
  print(k,d[k])
#查看用戶歷史記錄功能,標準庫collections的deque,雙端循環隊列,存在內容中,pickle存儲到文件
from random import randint
from collections import deque
N = randint(0,100)
history = deque([],5)
def guess(K):
  if K ==N:
   print('正確')
   return True
  if K < N:
   print('%s is less-than N'%K)
  else:
    print("%s is greater-than N"%K)
  return False
while True:
  line = input("請輸入一個數字:")
  if line.isdigit():
   k=int(line)
   history.append(k)
   if guess(k):
     break
  elif line =='history' or line =='h&#63;':
    print(list(history))

以上是“python如何高效處理數據類型”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安吉县| 白朗县| 平舆县| 齐齐哈尔市| 汉沽区| 隆子县| 驻马店市| 手游| 荔浦县| 博乐市| 宁陕县| 上饶县| 裕民县| 南靖县| 武冈市| 罗平县| 尼勒克县| 建阳市| 泸水县| 通渭县| 莱阳市| 浏阳市| 四会市| 古丈县| 新化县| 泰兴市| 西乌珠穆沁旗| 博罗县| 龙岩市| 北辰区| 边坝县| 汕头市| 滦平县| 大方县| 沁源县| 祁东县| 双江| 周宁县| 永昌县| 红安县| 吉木萨尔县|