導航:首頁 > 編程語言 > python統計

python統計

發布時間:2022-01-19 15:21:22

A. python 統計列表裡面有多少個元素

Python 統計列表裡面有多少個元素步驟如下:

1、打開python語言命令窗口,定義一個列表變數Z並列印對應的列表值。

B. python 如何統計元素出現的個數,以及每一次出現的位置

代碼如下:
l = ['a', 'b', 'c', 'd']
cou = len(l); #取list元素個數
print 'list元素個數: %s' % cou #列印元素個數
for i in l:
print '第一個元素: %s, 元素位置: %s' % (i, l.index(i)) #列印元素位置望採納,如有問題請追問,謝謝!

C. python 統計個數怎麼統計

#-*-coding:cp936-*-
fruitfile=open(r"fruit.txt")
fruitdict={}
forlineinfruitfile.readlines():
fruit=line.split()[1]
iffruitdict.has_key(fruit):
fruitdict[fruit]+=1
else:
fruitdict[fruit]=1
fruitlist=[]
forkey,valueinfruitdict.items():
fruitlist.append((key,value))
fruitlist.sort(lambdaa,b:b[1],reverse=True)
iflen(fruitlist)>=3:
print"出現次數前三的水果:"
printfruitlist[0][0],fruitlist[0][1]
printfruitlist[1][0],fruitlist[1][1]
printfruitlist[2][0],fruitlist[2][1]
print" 所有水果出現次數:"
forkey,valueinfruitlist:
printkey,value


其中fruit.txt為文件名

D. 用Python怎麼統計一個列表的元素種類和各個種類的個數

統計一個列表中每一個元素的個數在Python里有兩種實現方式,

第一種是新建一個dict,鍵是列表中的元素,值是統計的個數,然後遍歷list。

items=["cc","cc","ct","ct","ac"]

count={}
foriteminitems:
count[item]=count.get(item,0)+1
print(count)
#{'ac':1,'ct':2,'cc':2}

之中用到了一個小技巧,當dict中不還沒有統計過一個元素時,直接索引count[item]會報錯,而使用get方法count.get(item, 0)能夠設置索引不存在的鍵時返回0。


第二種是使用Python內置的函數。統計元素的個數是一種非常常見的操作,Python的collection包里已經有一個Counter的類,大致實現了上面的功能。

fromcollectionsimportCounter

items=["cc","cc","ct","ct","ac"]
count=Counter(items)
print(count)
#Counter({'ct':2,'cc':2,'ac':1})

E. 如何統計python list中元素的個數及其位置

l=[1,2,3,4,1]#目標數列
targetnum=1#元素
number=l.count(targetnum)
print('個數:'+str(number))
i=number
index=[]
whilei>0:
forxinrange(len(l)):
ifl[x]==targetnum:
index.append(x+1)
i=i-1
print('位置(第幾個):'+str(index))

F. 用python實現信息的統計

你還是自己編吧,沒人會編整個程序的

G. python如何統計字元串

判斷特定詞出現很容易,統計出現次數也很容易。但是處於多個特定詞之後的每一個非特定詞歸哪個特定詞?還有,後出現的關鍵詞不需要作為先出現的關鍵詞的子項吧?

我覺得用hash表比較方便表示。另外,關鍵詞放到一個列表裡。['cnn.com','amazon.com',...]
然後構建一個hash表Map 【鍵就是關鍵詞,值是一個hash表,每項是 詞:計數的形式 】
{ {'cnn.com': { 'a.com':1 },... },'amazon.com':{ 'bb.com':1,...},... }
這個表是處理過程中逐步建立起來的

然後每次遇到一次詞X,比較是否在關鍵詞列表中,如果是 並且hash表中沒有,加到hash表中,Map[X]={},否則不添加;
如果不是關鍵詞,那麼在Map表中每個項記上一筆【當然,如果不在一個關鍵詞的值hash表中噢,新增一項,否則增加計數】。
最後,遍歷關鍵詞hash表,並對值按照逆序輸出。就是你要求的格式。

H. python如何統計列表的長度

參考代碼:

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c"];
len(list1)
len(list2)
len(list3)

Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的類型有str, bytes, list, tuple等。它的語法是...[left:right]或者...[left:right:stride]。假定nums變數的值是[1, 3, 5, 7,],那麼下面幾個語句為真:

nums[2:5] == [5, 7] 從下標為2的元素切割到下標為5的元素,但不包含下標為5的元素。

nums[1:] == [3, 5, 7] 切割到最後一個元素。

nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數第3個元素。

nums[:] == [1, 3, 5, 7] 返回所有元素。改變新的列表不會影響到nums。

nums[1:5:2] == [3, 7] 從下標為1的元素切割到下標為5的元素但不包含下標為5的元素,且步長為2。

(8)python統計擴展閱讀:

Python 是一門有條理的和強大的面向對象的程序設計語言,類似於Perl, Ruby, Scheme, Java。

Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的語言。

設計者開發時總的指導思想是,對於一個特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的Python格言(稱為The Zen of Python)裡面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。

Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。

I. 如何高效地使用Python統計數據的頻率

之前用 Python 寫過一個腳本,用來處理上千萬用戶的一些數據,其中有一個需求是統計用戶的某一數據的去重數量。為了加快程序的速度,我啟用了多進程。但不幸的是,程序跑了近一個星期,還沒處理完。這時,我感覺到了不對,於是開始查看程序的性能瓶頸。
對於統計去重數,我是將用戶的數據放到一個列表中,然後用 len(set(data)) 去統計去重數量。剛開始我以為這的數據量並不大,每個用戶的數據不會過百,我並沒有注意到有的用戶會有上萬條的數據,因此消耗了大量的時間(其實我的腳本消耗時間最大的地方是因為從遠程 redis 中取大量數據時發生長時間的阻塞,甚至連接超時,最後我採用的方式分而治之,每次取少量的數據,這樣大大的提高了性能)。
為了做優化,我開始尋求高效的方法。我發現,有大量的人認為採用字典效率會更高,即:
data_unique = {}.fromkeys(data).keys() len(data_unique)

於是,我做了下測試:
In [1]: import random In [2]: data = [random.randint(0, 1000) for _ in xrange(1000000)] In [3]: %timeit len(set(data)) 10 loops, best of 3: 39.7 ms per loop In [4]: %timeit len({}.fromkeys(data).keys()) 10 loops, best of 3: 43.5 ms per loop

由此可見,採用字典和採用集合的性能是差不多的,甚至可能還要慢些。
在 Python 中其實有很多高效的庫,例如用 numpy、pandas 來處理數據,其性能接近於 C 語言。那麼,我們就用 numpy 和 pandas 來解決這個問題,這里我還比較了獲取去重數據的性能,代碼如下:
import collections import random as py_random import timeit import numpy.random as np_random import pandas as pd DATA_SIZE = 10000000 def py_cal_len(): data = [py_random.randint(0, 1000) for _ in xrange(DATA_SIZE)] len(set(data)) def pd_cal_len(): data = np_random.randint(1000, size=DATA_SIZE) data = pd.Series(data) data_unique = data.value_counts() data_unique.size def py_count(): data = [py_random.randint(0, 1000) for _ in xrange(DATA_SIZE)] collections.Counter(data) def pd_count(): data = np_random.randint(1000, size=DATA_SIZE) data = pd.Series(data) data.value_counts() # Script starts from here if __name__ == "__main__": t1 = timeit.Timer("py_cal_len()", setup="from __main__ import py_cal_len") t2 = timeit.Timer("pd_cal_len()", setup="from __main__ import pd_cal_len") t3 = timeit.Timer("py_count()", setup="from __main__ import py_count") t4 = timeit.Timer("pd_count()", setup="from __main__ import pd_count") print t1.timeit(number=1) print t2.timeit(number=1) print t3.timeit(number=1) print t4.timeit(number=1)

運行結果:
12.438587904 0.435907125473 14.6431810856 0.258564949036

利用 pandas 統計數據的去重數和去重數據,其性能是 Python 原生函數的 10 倍以上。

J. 如何使用python 統計網站訪問量並生成報表

統計網站訪問量
統計出每個IP的訪問量有多少?(從日誌文件中查找)

#!/usr/bin/env python
#!coding=utf-8
list = []
f = file('/tmp/1.log')
str1 = f.readlines()
f.close()
for i in str1:
ip = i.split()[0] //split()通過指定分隔符對字元串進行切片,默認為所有的空字元;split分隔後是一個列表,[0]表示取其第一個元素;
list.append(ip)//追加
list_num = set(list)
for j in list_num:
num = list.count(j)
print '%s : %s' %(j,num)

生成報表
#_*_coding:utf-8_*_

import MySQLdb
import xlwt
from datetime import datetime

def get_data(sql):

# 創建資料庫連接.
conn = MySQLdb.connect(host='127.0.0.1',user='root'\
,passwd='123456',db='test',port=3306,charset='utf8')
# 創建游標
cur = conn.cursor()
# 執行查詢,
cur.execute(sql)
# 由於查詢語句僅會返回受影響的記錄條數並不會返回資料庫中實際的值,所以此處需要fetchall()來獲取所有內容。
result = cur.fetchall()
#關閉游標
cur.close()
#關閉資料庫連接
conn.close
# 返給結果給函數調用者。
return result

def write_data_to_excel(name,sql):

# 將sql作為參數傳遞調用get_data並將結果賦值給result,(result為一個嵌套元組)
result = get_data(sql)
# 實例化一個Workbook()對象(即excel文件)
wbk = xlwt.Workbook()
# 新建一個名為Sheet1的excel sheet。此處的cell_overwrite_ok =True是為了能對同一個單元格重復操作。
sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
# 獲取當前日期,得到一個datetime對象如:(2016, 8, 9, 23, 12, 23, 424000)
today = datetime.today()
# 將獲取到的datetime對象僅取日期如:2016-8-9
today_date = datetime.date(today)
# 遍歷result中的沒個元素。
for i in xrange(len(result)):
#對result的每個子元素作遍歷,
for j in xrange(len(result[i])):
#將每一行的每個元素按行號i,列號j,寫入到excel中。
sheet.write(i,j,result[i][j])
# 以傳遞的name+當前日期作為excel名稱保存。
wbk.save(name+str(today_date)+'.xls')

# 如果該文件不是被import,則執行下面代碼。
if __name__ == '__main__':
#定義一個字典,key為對應的數據類型也用作excel命名,value為查詢語句
db_dict = {'test':'select * from student'}
# 遍歷字典每個元素的key和value。
for k,v in db_dict.items():
# 用字典的每個key和value調用write_data_to_excel函數。
write_data_to_excel(k,v)

閱讀全文

與python統計相關的資料

熱點內容
工作三年的大專程序員 瀏覽:726
java畢業設計文獻 瀏覽:138
籌碼集中度指標源碼 瀏覽:477
listsortjava 瀏覽:180
plc閃光電路編程實例 瀏覽:297
socket編程試題 瀏覽:201
華為的伺服器怎麼設置從光碟機啟動 瀏覽:867
程序員真的累嗎 瀏覽:323
學信網app為什麼刷臉不了 瀏覽:871
天蠍vs程序員 瀏覽:991
單片機下載口叫什麼 瀏覽:186
程序員的道 瀏覽:924
雲伺服器不實名違法嗎 瀏覽:557
怎樣查看文件夾圖片是否重復 瀏覽:995
文件怎麼導成pdf文件 瀏覽:806
打開sql表的命令 瀏覽:101
安卓手機如何面部支付 瀏覽:38
天元數學app為什麼登錄不上去 瀏覽:823
明日之後為什麼有些伺服器是四個字 瀏覽:104
安卓系統l1是什麼意思 瀏覽:26