MMYDBB 2022-12-29 01:21 采纳率: 79.3%
浏览 33
已结题

pthon中一个不理解的代码

个位谁能帮我看看,为啥结果是下面那个,不理解啊

```python
s='ABC'
while s:
    x,*s=s
    print(x, s)

#结果
A ['B', 'C']
B ['C']
C []
```

  • 写回答

3条回答 默认 最新

  • ShowMeAI 2022-12-29 11:22
    关注

    代码使用了 Python 中的解构赋值,允许同时将一个可迭代对象中的多个元素赋值给多个变量。

    在这里,x,*s=s 等价于:

    x = s[0]
    s = s[1:]
    

    所以,在每次循环开始时,x 变量的值是 s 中的第一个元素,而 s 变量的值则是 s 中的剩余元素。

    • 在循环的第一次迭代中,s 的值为 ['B', 'C'],所以 x 的值为 'A',s 的值为 ['B', 'C']。
    • 在循环的第二次迭代中,s 的值为 ['C'],所以 x 的值为 'B',s 的值为 ['C']。
    • 在循环的第三次迭代中,s 的值为 [],所以 x 的值为 'C',s 的值为 []。
    • 此时 s 为空,所以循环终止。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月29日

悬赏问题

  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题