我正在制作一个随机数循环,但也希望在另一个文件中已经可用的数据列中循环。
简化示例:
out = /location/of/test.txt
file = open(out,'w')
var = [7,12,1,35,4]
for num in range(5):
a = randint(1,10)
file.write('%i ' % a)
b = randint(1,10)
file.write('%i ' % b)
file.write('\n')
我想要的结果是:
4 10 7
10 8 12
7 2 1
6 5 35
9 8 4
我的问题是,如何将我的var数组循环到我的代码中?
我尝试过类似的东西:
for num in range(5):
a = randint(1,10)
file.write('%i ' % a)
b = randint(1,10)
file.write('%i ' % b)
for c in var:
file.write('%i ' % c)
file.write('\n')
但结果将是:
4 10 7 12 1 35 4
10 8 7 12 1 35 4
7 2 7 12 1 35 4
6 5 7 12 1 35 4
9 8 7 12 1 35 4
我理解为什么会这样,我只是不知道如何遍历我的var以及生成的数字循环来创建我想要的格式。
你不在任何地方使用num
,所以只需直接迭代var
。我还建议您在with
中使用open
子句并使用Python 3.6+中提供的f字符串:
out = 'test.txt'
var = [12,12,12,12,12]
a, b = 10, 11
with open(out, 'w') as fin:
for val in var:
fin.write(f'{a} {b} {val}\n')
输出:
10 11 12
10 11 12
10 11 12
10 11 12
10 11 12
除非我误解你,否则这应该是应该写的方式。 var数组中有5个变量。循环遍历数组并执行其下面的其余逻辑。
out = /location/of/test.txt
file = open(out,'w')
var = [7,12,1,35,4]
for c in var:
a = randint(1,10)
file.write('%i ' % a)
b = randint(1,10)
file.write('%i ' % b)
file.write('%i ' % c)
file.write('\n')
out = /location/of/test.txt
file = open(out,'w')
df = some dataframe
df[:,4] = [7,12,1,35,4]
for col in range(len(df.index)):
a = randint(1,10)
file.write('%i ' % a)
b = randint(1,10)
file.write('%i ' % b)
c = (df.iloc[[col],4])
file.write('%.i ' % c)
file.write('\n')