qq_19519033 2021-09-10 10:26 采纳率: 72.7%
浏览 91
已结题

for j in range(len(list1[0]))中的list1[0]该怎么理解呢?还有关于i[j]还有点不理解。


`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是一列数字组成的,这是怎么回事。。

  • 写回答

2条回答 默认 最新

  • 唯妮 2021-09-10 10:43
    关注

    list1 列表里元素是字符串或者列表、元组这类可以迭代的对象。
    第一个循环是循环列表list1里的每个元素,赋值给i;
    第二个循环是根据list1里第0个元素判断长度去循环,不能改成list1【i】,因为你的i是元素对象,不是元素序号,如果你第一个循环用的range(len(list1)),那就可以用list1【i】,但这样的话,你后面的第6行就不能是str(i[j])了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月18日
  • 已采纳回答 9月10日
  • 修改了问题 9月10日
  • 创建了问题 9月10日

悬赏问题

  • ¥20 eclipse连接sap后代码跑出来空白
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi