Deutsche westliche 2021-09-13 09:49 采纳率: 64.3%
浏览 31
已结题

python中format的使用中的小疑惑

list=['world','python']
print('hello {0[0]}  i am {0[1]}'.format(list)) #输出结果:hello world  i am python

此处0[0]为什么需要第一个0?直接[0]不可以吗

  • 写回答

2条回答 默认 最新

  • 於黾 2021-09-13 09:55
    关注

    python中format参数:
    有点类似函数传参,有多种方式
    可以直接这样"{} {} {}".format(1,2,3)
    那么参数会按照{}出现在字符串里的位置(顺序)传进来,类似按位置传参
    也可以指定"{1} {0} {2}".format(1,2,3)
    那么1会传给{0},2会传给{1},类似按名称传参
    -=-=-=-
    具体到你这个代码,因为你后面只传入了1个参数,那么前面肯定是都要统一使用{0}来接受参数的,不能用{1},那样接受不到参数
    {0[0]}表示第0个参数的第0个元素,传入的参数必须是个集合
    你直接写[0],没有外面的{}包装,那么它只是个字符串,起不到指定参数的作用
    -=-=-=-=-=-=
    再回到你的问题,没有{}肯定是不可以的,但是没有外面的0,变成这样{[0]},应该是也可以的。反正你后面只有一个参数,不会引发歧义。但是如果有多个参数那就不行了。可能写代码的人为了给后面继续加参数预留了接口,避免加参数需要修改前面的字符串,所以才这么写的吧。

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

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 9月13日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?