我正在尝试添加一个(数字,(元组))的元组,但它会丢弃外部元组。
如何更改代码以使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))]
答案 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))]