pythonでデータのランダムシャッフル。
入力ファイル
1
2
3
4
5
出力ファイル
1,3
2,4
3,2
4,1
5,5
コード:
import random import sys file=sys.argv[1] #print file a=[] #ファイル読み込み for line in open(file,'r'): a.append(line.strip("\n")) #配列のコピー、b=aではだめ。 a_moto=a[:] #ランダムシャッフル random.shuffle(a) #カンマ区切りで出力 for str1,str2 in zip(a_moto,a): print str1+","+str2
ファイル入力の部分を一行にまとめる。
import random import sys file=sys.argv[1] a=open(file,'r').readlines() b=a[:] random.shuffle(a) j=0; for str in b: print str.strip("\n")+","+a[j].strip("\n") j=j+1;
乱数モジュールの説明
http://www.python.jp/doc/2.4/lib/module-random.html
ランダムモジュールの使い方
http://www.yukun.info/blog/2008/06/python-random.html
コマンドライン引数
http://www.yukun.info/blog/2008/07/python-command-line-arguments.html
文字列処理の比較
http://0xcc.net/blog/archives/000137.html
CSVファイルの読み取り
http://mitsukuni.org/blog/2009/07/10/pythonでcsvファイルを読み込む/
ファイルの読み込み
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/readfile.html