免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2661 | 回复: 3
打印 上一主题 下一主题

菜鸟求助,a[1:1]=[8,9] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-29 16:04 |只看该作者 |倒序浏览
30 Python Language Features and Tricks You May Not Know About中第九个例子如下

1.9   List slice assignment
>>> a = [1, 2, 3, 4, 5]
>>> a[2:3] = [0, 0]
>>> a
[1, 2, 0, 0, 4, 5]
>>> a[1:1] = [8, 9]
>>> a

[1, 8, 9, 2, 0, 0, 4, 5]
>>> a[1:-1] = []
>>> a
[1, 5]

例子中a[1:1]=[8,9]是什么意思,给第一个元素前加元素吗?这种用法有数量限制吗?新人第一次学Python,求指导,谢谢

论坛徽章:
0
2 [报告]
发表于 2014-03-29 18:35 |只看该作者
a[1:1] 可以理解为第一个与第二个之间的位置的子列表。赋值当然也得用列表去赋值
x[n:m] 就是第n个与第m+1个之间(两边都不算)
a[1:1]=[8,9] 就是本来第一个与第二个之间没有东西的,现在变成[8,9]。 所以相当于插入
插入也可以这样写
  1. a = a[:1]+[8,9]+a[1:]
复制代码
这样是不是更有插入的感觉?

a[1:-1] 就是从第一个到 倒数第一个之间,不包含两边。也就是[8, 9, 2, 0, 0, 4],你把这些数字变成[],也就是与上面相反,变成了删除
删除也可以这样写
  1. del a[1:-1]
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-03-30 12:37 |只看该作者
回复 2# 太平洋上的我


    a[n:m],这是包含n,不包含m吧。

论坛徽章:
0
4 [报告]
发表于 2014-03-30 16:07 |只看该作者
本帖最后由 太平洋上的我 于 2014-03-30 16:08 编辑

回复 3# Jpython

首先a[1]表示的是第二个而不是第一个
a[1:2] 是包含第二个不包含第三个。为了方便理解我喜欢表达为 在第一个到第三个(两边都不包括)之间
总结就是n到m+1 之间(不包括两边)
因为这样就很好解释a[n:n] 就是第n个到n+1个之间,因为不包括两边,所以就是空集。
否则硬要理解为第n个到第n个(不包含后面那个n)之间,逻辑上说不通。

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP