0
固定パラメータに部分的に基づいてユーザ入力に部分的に基づいて6行の.csvファイルを作成する必要があります。固定パラメータは問題ではありませんが、3つの変数があります。部分的にユーザ入力に基づいてPythonを使用してCSVファイルを生成する
- ファイルのすべての行に1から6の範囲の乱数(繰り返しはありません)を追加する必要があります。私はnp.random.choiceを使用してそれらの数値を作成し、すべてのループに1番目、2番目、3番目の[...]要素を行に追加するという考えを思いついたが、うまくいきません。
- ユーザは、2つ以上の変数(例えば、XまたはY)を連続して繰り返すかどうかを選択できる必要があります。例:ユーザー入力が「2」の場合、6行のうち2行にX、XまたはY、Yが含まれている必要があります。入力が0の場合、X、XまたはY、Yは含まれません。真実を伝えて、私はそのようなものをどのようにコード化するのか分かりません。
これまでのコードです。
import csv
import numpy as np
t_delay = input("xxx:")
t_target = input("xxx:")
rndTrial = np.random.choice(6, 6, replace=False) # Problem 1
X_Y = input("xxx:") # Problem 2
with open('test.csv', 'w', newline = '') as my_csv:
writer = csv.writer(my_csv, delimiter=',', quotechar='|')
writer.writerow(['Head1', 'Head2', 'Head...'])
for lazy in range(0, 6):
writer.writerow([60, 12 , t_delay, t_target, X, Y, rndTrial]
ユーザーが同じ(XまたはY)の変数との3行を持っていることを選択した場合、目的の.csvファイルは次のようになります。事前に
fixed, fixed, user_input, user_input, problem2, problem2, random_number
60,12,t_delay,t_target,X,X,1
60,12,t_delay,t_target,X,Y,2
60,12,t_delay,t_target,Y,X,3
60,12,t_delay,t_target,X,X,4
60,12,t_delay,t_target,Y,Y,5
60,12,t_delay,t_target,X,Y,6
感謝を!
ありがとうSci Prog。もう1つの質問:リスト1とリスト2の第1、第2、第3のリスト要素を選択し、それをループに追加するにはどうすればよいですか?私が念頭に置いておくべきこと:最初のループ - > list1とlist 2の最初のリスト要素を取り出し、行に追加 - > 2番目のループ - > 2番目の[...]。あなたの助けをもう一度ありがとう! – STD
私はあなたの質問を理解するか分からない。 'for i in range(0,6): 'では、ループ変数を' list1'と 'list2'のインデックスとして使うことができます。これは配列から要素を削除しません。リストの最初の要素を取り出してリストから削除したい場合は、 'list1'と' list2'の両方で '.pop(0)'メソッド(pythonのドキュメントを参照)を使うことができます。 –