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

时间:2016-06-21 02:01:05

标签: python list tuples

我正在尝试添加一个(数字,(元组))的元组,但它会丢弃外部元组。

如何更改代码以使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 个答案:

答案 0 :(得分:2)

使用追加:

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 :(得分:1)

将其更改为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

答案 2 :(得分: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))]