`t = ' '
with open('D:/data/try.txt', 'w+') as f_out:
for i in list1:
for j in range(len(list1[0])):
t = t + str(i[j])
f_out.write(t)
f_out.write('\n')
t =' '
先解释一下,list1应该是只含有一列数字的列表
问题1,i[j]存在的意义?
关于两个循环,我的理解是第一个循环是把把list中的值赋值给i,第二个循环作用时生成j,再利用j对i进行索引,如果用i输出的话,得到的是list,结果是含中括号和单引号的,而如果是用i[j]表示,则可以将list转换为列表中的元素,输出的结果就会是纯数字,不知道这样想的对不对
问题2,list1[0]是什么?
在之前提问时,有人说应该把list1[0]改成list1[i],但我改成list1[i]后,得到了“TypeError:list indices must be integers or slices, not list”这样一个报错,如果是用list1[0的话确实能得到我想要的结果,所以想问问大家这具体是怎么一回事呢?
先谢谢了!一定会及时采纳的!
更新一下问题!!我发现运行的时候j恒为0,而我的list1是一列数字组成的,这是怎么回事。。
list1 列表里元素是字符串或者列表、元组这类可以迭代的对象。
第一个循环是循环列表list1里的每个元素,赋值给i;
第二个循环是根据list1里第0个元素判断长度去循环,不能改成list1【i】,因为你的i是元素对象,不是元素序号,如果你第一个循环用的range(len(list1)),那就可以用list1【i】,但这样的话,你后面的第6行就不能是str(i[j])了。
首先,你代码运行不报错,证明list1里面的元素是字符串格式的数字,
看你代码的逻辑猜测,list1里面的数字都是位数相同的数字,第二个循环,只是为了将字符串格式的数字完全取出来而已,你可以打印一下i的类型
print(type(i))