2015-06-25 35 views
0

是否可以使用csvwriter製作一個隨機化器來隨機化整行?我的代碼與此類似:Python Csvwriter隨機化行

for i in range(45): 
    count=count+1 
    writer.writerow((count,pattern)) 

其中pattern是一個與count相對應的數字。例如:當count = 1 pattern = 1; count = 2 pattern = 9; count = 3 pattern = 17,依此類推......我想要一種隨機化行的方式,以便正確的計數仍然對應於正確的模式。任何幫助是極大的讚賞!

回答

1

負載成二維陣列存儲計在[I] [0],並在[I] [1]然後洗牌然後將它們寫入到csv文件的模式。

import random 

count = 0 
a = [] 
for i in range(45): 
    count = count + 1 
    a.append([count,pattern]) 

random.shuffle(a) 
for i in range(len(a)): 
    writer.writerow(a[i][0], a[i][1]) #a[i][0] = count, a[i][1] = pattern 
0

這不是一個真正的csvwriter特定問題,但我理解你的問題的方式是,你想寫隨機'計數'到你的csv文件,對應於一個設置的數字。我不確定在這種情況下你的模式是n + 8,但這就是它的樣子。一種選擇是隻用模式創建一個字典,從字典中選擇鍵,然後選擇值並寫入它們。像這樣:

import random 
dict = {} 
n = 1 
for i in range(n): 
    n += 8 
    dict[i+1] = n 

for i in range(a): 
    count = random.randint(1,n) 
    row = (count, dict[count]) 
    writer.writerow(row)