鱼C论坛

 找回密码
 立即注册
查看: 2111|回复: 2

[已解决]列表换内容的一道题

[复制链接]
发表于 2020-1-2 11:20:35 | 显示全部楼层 |阅读模式

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

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

x
(源于:习题012 打了激素的03 )

小甲鱼的题目:将下边这个列表的'小甲鱼'修改为'小鱿鱼'?
list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]

小甲鱼的答案:
list1[1][2][0] = '小鱿鱼'

请问:
1. 我想用remove和insert,可行么?我试了几次,都报错。请帮助,谢谢~
2. 怎们理解小甲鱼的答案?3个[],我看得出,是代表三个层级位置,但没有用 中括号套中括号再套中括号的方式,而是三个[]并列,Python这是按照什么思维逻辑设计和表达的呢?





最佳答案
2020-1-2 14:26:06
本帖最后由 sunrise085 于 2020-1-2 14:31 编辑

列表嵌套,在列表内容显示的时候是[]嵌套,但是在索引的时候不可能是[]嵌套的,只能是[]并列,这是因为索引嵌套列表的元素,需要先索引外层列表相对应的序号,获得内部的列表,然后再索引内层列表的序号。你所说的remove和insert也是可行的,你尝试了报错可能是因为使用的不对吧。你可以看一下下列程序。
list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
print('list1[1]的内容是:',list1[1],',它的数据类型是:',type(list1[1]))
print('list1[1][2]的内容是:',list1[1][2],',它的数据类型是:',type(list1[1][2]))
print('list1[1][2][0]的内容是:',list1[1][2][0],',它的数据类型是:',type(list1[1][2][0]))
print()
list1[1][2].remove('小甲鱼')
print('使用remove删除小甲鱼之后的列表list1:',list1)
list1[1][2].insert(0,'小鱿鱼')
print('使用insert插入小鱿鱼之后list1[1][2]的内容是:',list1[1][2])
print('使用insert插入小鱿鱼之后的列表list1:',list1)
运行结果如下:
list1[1]的内容是: [1, 2, ['小甲鱼']] ,它的数据类型是: <class 'list'>
list1[1][2]的内容是: ['小甲鱼'] ,它的数据类型是: <class 'list'>
list1[1][2][0]的内容是: 小甲鱼 ,它的数据类型是: <class 'str'>

使用remove删除小甲鱼之后的列表list1: [1, [1, 2, []], 3, 5, 8, 13, 18]
使用insert插入小鱿鱼之后list1[1][2]的内容是: ['小鱿鱼']
使用insert插入小鱿鱼之后的列表list1: [1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-2 12:13:56 | 显示全部楼层
list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list[1] = [1, 2, ['小甲鱼']]
list[1][2] = ['小甲鱼']
list[1][2][0] = '小甲鱼'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-2 14:26:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-1-2 14:31 编辑

列表嵌套,在列表内容显示的时候是[]嵌套,但是在索引的时候不可能是[]嵌套的,只能是[]并列,这是因为索引嵌套列表的元素,需要先索引外层列表相对应的序号,获得内部的列表,然后再索引内层列表的序号。你所说的remove和insert也是可行的,你尝试了报错可能是因为使用的不对吧。你可以看一下下列程序。
list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
print('list1[1]的内容是:',list1[1],',它的数据类型是:',type(list1[1]))
print('list1[1][2]的内容是:',list1[1][2],',它的数据类型是:',type(list1[1][2]))
print('list1[1][2][0]的内容是:',list1[1][2][0],',它的数据类型是:',type(list1[1][2][0]))
print()
list1[1][2].remove('小甲鱼')
print('使用remove删除小甲鱼之后的列表list1:',list1)
list1[1][2].insert(0,'小鱿鱼')
print('使用insert插入小鱿鱼之后list1[1][2]的内容是:',list1[1][2])
print('使用insert插入小鱿鱼之后的列表list1:',list1)
运行结果如下:
list1[1]的内容是: [1, 2, ['小甲鱼']] ,它的数据类型是: <class 'list'>
list1[1][2]的内容是: ['小甲鱼'] ,它的数据类型是: <class 'list'>
list1[1][2][0]的内容是: 小甲鱼 ,它的数据类型是: <class 'str'>

使用remove删除小甲鱼之后的列表list1: [1, [1, 2, []], 3, 5, 8, 13, 18]
使用insert插入小鱿鱼之后list1[1][2]的内容是: ['小鱿鱼']
使用insert插入小鱿鱼之后的列表list1: [1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 17:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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