首页 文章

添加数字,然后将元组列为元组列表,但它会丢弃外部元组[重复]

提问于
浏览
5

这个问题在这里已有答案:

我试图添加一个(数字,(元组))的元组,但它会丢弃外部元组 .

如何更改代码以使l1看起来像L2?它似乎删除外部元组并将其转换为列表元素?我怎么阻止它?更好的是,它为什么会发生?

l1 = []
t1 = (1.0 , (2.0,3.0))
l1.extend((t1))
t2 = (4.0 , (5.0,6.0))
l1.extend(t2)
print(l1)

l2 = [(1.0, (2.0,3.0)),
      (4.0, (5.0,6.0))]
print(l2)

l1出现为[1.0,(2.0,3.0),4.0,(5.0,6.0)]

l2出现为[(1.0,(2.0,3.0)),(4.0,(5.0,6.0))]

3 回答

  • 1

    使用追加:

    l1 = []
    t1 = (1.0 , (2.0,3.0))
    l1.append((t1))
    t2 = (4.0 , (5.0,6.0))
    l1.append(t2)
    print(l1)
    
    l2 = [(1.0, (2.0,3.0)),
          (4.0, (5.0,6.0))]
    print(l2)
    
  • 2

    将它更改为append()就可以了 .

    l1 = []
    t1 = (1.0 , (2.0,3.0))
    l1.append((t1))
    t2 = (4.0 , (5.0,6.0))
    l1.append(t2)
    print(l1)
    
    l2 = [(1.0, (2.0,3.0)),
          (4.0, (5.0,6.0))]
    print(l2)
    

    l1 - [(1.0,(2.0,3.0)),(4.0,(5.0,6.0))]

    l2 - [(1.0,(2.0,3.0)),(4.0,(5.0,6.0))]

    Append将数据结构添加到列表的末尾,extend提取迭代 . 要更好地理解append vs. extend

  • 0

    你可以使用 extend()append() 来做到这一点 . 你的代码使用 extend() 的问题是Python不能将 () 识别为元组,即使其中只有一个元素 . 但是,它确实将 (,) 识别为空元组:

    l1 = []
    t1 = (1.0 , (2.0,3.0))
    # Note the extra comma
    l1.extend((t1,))
    t2 = (4.0 , (5.0,6.0))
    # Note the extra enclosing parentheses and comma
    l1.extend((t2,))
    print(l1)
    
    l2 = [(1.0, (2.0,3.0)),
          (4.0, (5.0,6.0))]
    print(l2)
    

    另一方面,正如Vedang Mehta所说,是使用追加:

    l1 = []
    t1 = (1.0 , (2.0,3.0))
    l1.append(t1)
    t2 = (4.0 , (5.0,6.0))
    l1.append(t2)
    print(l1)
    
    l2 = [(1.0, (2.0,3.0)),
          (4.0, (5.0,6.0))]
    print(l2)
    

    两者都会给你结果:

    [(1.0, (2.0, 3.0)), (4.0, (5.0, 6.0))]
    [(1.0, (2.0, 3.0)), (4.0, (5.0, 6.0))]
    

相关问题