python語法練習 python語法練習

2021-10-18 15:43:40 字數 2152 閱讀 5693

簡單的需求,獲取重複次數最多的資料

@沛公import random

_dict =

for i in range(1,1000000):

rd_num = random.randrange(0,999,1)

if rd_num in _dict:

_dict[rd_num] = _dict[rd_num]+1

else:

_dict[rd_num] = 1

#print(rd_num)

print(_dict)

items = _dict.items();

print(items[0:10])

items = sorted(items, lambda x,y:cmp(x[1],y[1]),reverse=true)

print(items[0:10])

4.0g 虛擬機器測試 100w資料0.6s 。。。 一般了 後續新增sqlite

import sqlite3

import random

_max_value = 100

_data_cnt = 1000000

conn = sqlite3.connect('test.db')

cur = conn.cursor()

def got_cnt(x):

cur.execute('''select times from sorted where value=%s;''' % x)

already = cur.fetchall()

length = len(already)

if length is not 0:

length = already[0][0];

#print('search for %s fond %s' % (x,length))

return length

cur.execute('''create table ramdon_data

(id integer primary key not null,value integer);''')

cur.execute('''create table sorted

(id integer primary key not null,value integer, times integer);''')

print("create ok")

for i in range(1,_data_cnt):

rd_num = random.randrange(0,_max_value,1)

#print(rd_num)

cur.execute('''insert into ramdon_data(value) values

(%s);''' % rd_num)

conn.commit();

print("data ready")

cur.execute('''select * from ramdon_data;''')

ans = cur.fetchall()

for d in ans:

#print(d)

value = d[1];

times = got_cnt(d[1]) + 1

if times is 1:

cur.execute('''insert into

sorted(value,times) values(%s,%s);''' % (value,times))

else:

cur.execute('''update sorted

set times=%s where value=%s;''' % (times,value))

conn.commit();

print("calc ready")

cur.execute('''select * from sorted order by times;''');

ans = cur.fetchall();

print('''

len is %s''' % len(ans))

for d in ans:

print(d)

conn.close();

加了sqlite之後,慢多了 100w資料 30s。。。 當然 跟我毫無節操的讀寫資料有關係。無論如何。sqlite和python以及sql算是入門了

python語法練習 python基本語法練習

1 列印九九乘法表 只列印結果 for i in range 1,10 for j in range 1,i 1 print i j,end print 列印算數表示式 for i in range 1,10 for j in range 1,i 1 print format j,i,i j end...

Python基礎語法練習2

1.隨機生成5個 100 100之間 包括 100與100 的整數儲存到列表中,按絕對值從小到大排列 若有相同數字,相同數字並列排序即可 並列印輸出列表 import random num list random.randint 100 100 for i in range 5 列表推導式 new ...

Python語法練習8 異常

python使用被稱為異常的特殊物件來管理程式執行期間發生的錯誤。若編寫了處理異常的 程式將繼續執行,若沒有,程式將停止並顯示乙個traceback.2.try except 塊 1 若try 塊中的 執行起來沒有問題,python將跳過except 塊,若在太容易 塊中發生錯誤,python將查詢...