V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
JQiue
V2EX  ›  问与答

为什么 myList[1:] = "world"和 myList[1:] = ["world"]的结果不一样?

  •  1
     
  •   JQiue · 2020-10-28 15:55:47 +08:00 · 1206 次点击
    这是一个创建于 1521 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设有一个列表 myList = ['hello', 1, 2, 3, 4]

    如果 myList[1:] = "world"

    则得到['hello', 'w', 'o', 'r', 'l', 'd']

    如果 myList[1:] = ["world"]

    则会得到['hello', 'world']

    这是为什么呢?

    6 条回复    2020-10-28 17:08:57 +08:00
    BigOldBrother
        1
    BigOldBrother  
       2020-10-28 16:27:54 +08:00
    “world”是一个由'w', 'o', 'r', 'l', 'd'组成的字符数组,["world"]是一个由“world”组成的普通数组?
    ly4572615
        2
    ly4572615  
       2020-10-28 16:44:18 +08:00
    新元素的类型不同
    Pichai
        3
    Pichai  
       2020-10-28 17:01:01 +08:00
    在 python 中,字符串也可以当作 list 来进行处理。python 对字符串没有分隔等操作,都是通过切片来处理的。
    所以 myList[1:] = "world"与 myList[1:] = ['w','o','r','l','d']是相同的。
    misaka19000
        4
    misaka19000  
       2020-10-28 17:03:00 +08:00
    反编译看汇编,至于为什么那就只能说「这门语言就是这样规定的」
    Muniesa
        5
    Muniesa  
       2020-10-28 17:05:39 +08:00
    我理解的,不一定对:myList[1:]是一个 list 类型,myList[1:] = "world" 会把实际上是 myList[1:] = list("world"),list("world")实际上就是['w', 'o', 'r', 'l', 'd'],["world"]因为本身就是 list 所以作为一个整体了。
    Muniesa
        6
    Muniesa  
       2020-10-28 17:08:57 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5350 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:10 · PVG 17:10 · LAX 01:10 · JFK 04:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.