Python : 将列表附加到列表
Python : append a list to a list
我在 Python 做一些练习,我遇到了一个疑问。我必须使用 .append 方法设置一个包含 list 的前三个元素的列表。问题是,我收到断言错误,列表不匹配。如果我打印 list_first_3 我得到“[['cat', 3.14, 'dog']]”,所以双方括号是问题所在。但是我如何定义列表以使输出匹配?
list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3.append(list[:3])
assert list_first_3 == ["cat", 3.14, "dog"]
将列表附加到列表时,列表成为原始列表的新项目:
list_first_3 == [["cat", 3.14, "dog"]]
您正在寻找:
list_first_3 += list[:3] # ["cat", 3.14, "dog"]
这会添加从 list
到 list_first_3
的所有项目。
此外,你不应该像 list
.
这样的内置类型来命名你的变量
如果您需要追加,可以使用 for 循环:
list_first_three = []
for item in list[:3]:
list_first_three.append(item)
您的问题是您试图将一个列表附加到另一个列表。
list[:3]
会给你 return 结果 ["cat", 3.14, "dog"]
然后,你把这个结果作为一个整体,把它作为一个项目放在 list_first_3
中。
如果你想解决这个问题,你可以这样做:
list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3 += list[:3]
assert list_first_3 == ["cat", 3.14, "dog"] # Return True
如果你坚持使用append
方法:
list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
for item in list[:3]
list_first_3.append(item)
assert list_first_3 == ["cat", 3.14, "dog"] # Return True
append
只能加一个值。我认为您可能想到的是扩展方法(或 += 运算符)
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3.extend(list1[:3])
assert list_first_3 == ["cat", 3.14, "dog"]
或
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3 += list1[:3]
assert list_first_3 == ["cat", 3.14, "dog"]
否则你需要一个循环:
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
for value in list1[:3]: list_first_3.append(value)
assert list_first_3 == ["cat", 3.14, "dog"]
with append
但没有循环可以使用一些 map()
技巧:
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
any(map(list_first_3.append,list1[:3]))
assert list_first_3 == ["cat", 3.14, "dog"]
我在 Python 做一些练习,我遇到了一个疑问。我必须使用 .append 方法设置一个包含 list 的前三个元素的列表。问题是,我收到断言错误,列表不匹配。如果我打印 list_first_3 我得到“[['cat', 3.14, 'dog']]”,所以双方括号是问题所在。但是我如何定义列表以使输出匹配?
list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3.append(list[:3])
assert list_first_3 == ["cat", 3.14, "dog"]
将列表附加到列表时,列表成为原始列表的新项目:
list_first_3 == [["cat", 3.14, "dog"]]
您正在寻找:
list_first_3 += list[:3] # ["cat", 3.14, "dog"]
这会添加从 list
到 list_first_3
的所有项目。
此外,你不应该像 list
.
如果您需要追加,可以使用 for 循环:
list_first_three = []
for item in list[:3]:
list_first_three.append(item)
您的问题是您试图将一个列表附加到另一个列表。
list[:3]
会给你 return 结果 ["cat", 3.14, "dog"]
然后,你把这个结果作为一个整体,把它作为一个项目放在 list_first_3
中。
如果你想解决这个问题,你可以这样做:
list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3 += list[:3]
assert list_first_3 == ["cat", 3.14, "dog"] # Return True
如果你坚持使用append
方法:
list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
for item in list[:3]
list_first_3.append(item)
assert list_first_3 == ["cat", 3.14, "dog"] # Return True
append
只能加一个值。我认为您可能想到的是扩展方法(或 += 运算符)
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3.extend(list1[:3])
assert list_first_3 == ["cat", 3.14, "dog"]
或
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3 += list1[:3]
assert list_first_3 == ["cat", 3.14, "dog"]
否则你需要一个循环:
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
for value in list1[:3]: list_first_3.append(value)
assert list_first_3 == ["cat", 3.14, "dog"]
with append
但没有循环可以使用一些 map()
技巧:
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
any(map(list_first_3.append,list1[:3]))
assert list_first_3 == ["cat", 3.14, "dog"]