在行迭代中迭代列数据

问题描述 投票:0回答:3

我正在制作一个随机数循环,但也希望在另一个文件中已经可用的数据列中循环。

简化示例:

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以及生成的数字循环来创建我想要的格式。

python csv python-3.7
3个回答
1
投票

你不在任何地方使用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

0
投票

除非我误解你,否则这应该是应该写的方式。 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') 

0
投票
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') 
© www.soinside.com 2019 - 2024. All rights reserved.