san*_*ros 6 python list append
我正在用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"]
Run Code Online (Sandbox Code Playgroud)
Ala*_* T. 11
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"]
Run Code Online (Sandbox Code Playgroud)
或者
list1 = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3 += list1[:3]
assert list_first_3 == ["cat", 3.14, "dog"]
Run Code Online (Sandbox Code Playgroud)
否则你需要一个循环:
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"]
Run Code Online (Sandbox Code Playgroud)
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"]
Run Code Online (Sandbox Code Playgroud)