鱼C论坛

 找回密码
 立即注册
查看: 1740|回复: 7

[已解决]请问这个列表为什么无法赋值?

[复制链接]
发表于 2018-1-7 12:06:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jle55555 于 2018-1-7 15:48 编辑

代码如下:
  1. >>> lis=[['z' for j in range(6)] for i in range(6)]
  2. >>> lis
  3. [['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z']]
  4. >>> lis[0]
  5. ['z', 'z', 'z', 'z', 'z', 'z']
  6. >>> for each in lis[0]:
  7.         each=7

  8.        
  9. >>> lis
  10. [['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z']]
  11. >>>
复制代码


请问如何修改,才能将lis[0]中的每个元素都改为7,即希望最后的lis为:
[[0, 0, 0, 0, 0, 0], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z']]
最佳答案
2018-1-7 16:13:54
jle55555 发表于 2018-1-7 15:45
感谢你的回答,是我没说清楚。要将lis[0]中的每个元素都改为7,即希望最后的lis为
[[0, 0, 0, 0, 0, 0],  ...

原理也是一样的代码如下:
  1. lis=[['z' for j in range(6)] for i in range(6)]
  2. lis[0]
  3. length=len(lis[0])
  4. for each in range(length):
  5.         lis[0][each]=7
  6. print(lis)
复制代码
用lis[0]里的元素个数来当做循环的次数:
  1. length=len(lis[0])
复制代码
每一次将 lis[0][每一个元素]赋值为7。
如果满意我的回答,请您记得给我个最佳答案,谢谢!~祝您学有所成!





小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-7 12:17:04 | 显示全部楼层
能具体点不???是要改['z', 'z', 'z', 'z', 'z', 'z']  
还是改'z'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-7 12:42:23 | 显示全部楼层
直接list[0]=xxx不就完了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-7 12:54:26 | 显示全部楼层
  1. for each in lis[0]:
  2.         each=7
复制代码

您的代码中的each是变量,而你赋值给了这个变量值,并没有给你想改变的lis[0]赋值所以不会改变lis[0]中的值。
如果你想改变lis[0]中的值就应该这样写

  1. for each in lis[0]:
  2.         lis[0]=7
复制代码

这样就可以把lis中的第一个元素变成了7了。
如果满意我的回答,请您记得给我个最佳答案,谢谢!~祝您学有所成!



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-7 15:42:53 | 显示全部楼层
ba21 发表于 2018-1-7 12:17
能具体点不???是要改['z', 'z', 'z', 'z', 'z', 'z']  
还是改'z'

不好意思,我没说清楚。要将lis[0]中的每个元素都改为7,即希望最后的lis为
[[0, 0, 0, 0, 0, 0], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z']]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-7 15:43:35 | 显示全部楼层
jewen 发表于 2018-1-7 12:42
直接list[0]=xxx不就完了

不好意思,我没说清楚。要将lis[0]中的每个元素都改为7,即希望最后的lis为
[[0, 0, 0, 0, 0, 0], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z']]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-7 15:45:14 | 显示全部楼层
像番茄加两个蛋 发表于 2018-1-7 12:54
您的代码中的each是变量,而你赋值给了这个变量值,并没有给你想改变的lis[0]赋值所以不会改变lis[0]中的 ...

感谢你的回答,是我没说清楚。要将lis[0]中的每个元素都改为7,即希望最后的lis为
[[0, 0, 0, 0, 0, 0], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z'], ['z', 'z', 'z', 'z', 'z', 'z']]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-7 16:13:54 | 显示全部楼层    本楼为最佳答案   
jle55555 发表于 2018-1-7 15:45
感谢你的回答,是我没说清楚。要将lis[0]中的每个元素都改为7,即希望最后的lis为
[[0, 0, 0, 0, 0, 0],  ...

原理也是一样的代码如下:
  1. lis=[['z' for j in range(6)] for i in range(6)]
  2. lis[0]
  3. length=len(lis[0])
  4. for each in range(length):
  5.         lis[0][each]=7
  6. print(lis)
复制代码
用lis[0]里的元素个数来当做循环的次数:
  1. length=len(lis[0])
复制代码
每一次将 lis[0][每一个元素]赋值为7。
如果满意我的回答,请您记得给我个最佳答案,谢谢!~祝您学有所成!





小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-5 12:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表