我想说我是初学者,所以请耐心等待我。
问题:
1 即可。如何从list(firstlist)
中删除项目,然后将其添加到另一个list(secondlist)
?
firstlist = ['a', 'b', 'c', 'd']
secondlist = []
2 即可。如何使用pop()
和remove()
,以及如何在这种情况下使用它?
所以我想知道,这本书告诉我,我将使用pop()
方法的项目索引。
firstlist.pop(1)
如果我知道项目的价值,我可以使用remove()
方法。
firstlist.remove('b')
使用remove()
方法会不会更容易?希望这是有道理的。
编辑:假设列表中有名称。我该如何处理?
答案 0 :(得分:0)
当你使用pop,python删除索引并返回item的值时,在remove方法中它不会发生:
given(" account check view model") {
val accountCheckRequest by memoized {
mock<CheckExistingAccountRequest>() {
on { email }.thenReturn("foo@mail")
}
}
val accountCheckResponse by memoized {
mock<CheckExistingAccountResponse>() {
on { firstName }.thenReturn("foo")
on { email }.thenReturn("foo@mail")
}
}
val webService by memoized {
mock<IAPICalls> {
on { checkExistingAccount(accountCheckRequest) }.thenReturn(Flowable.just(accountCheckResponse))
}
}
val accountCheckViewModel by memoized {
spy(VMAccountCheck(webService))
}
on("api success") {
accountCheckViewModel.checkIfAccountExists(request = accountCheckRequest)
it("should call live data with first name as foo") {
verify(accountCheckViewModel, times(1)).updateLiveData(accountCheckResponse.firstName, accountCheckResponse.email, null)
}
}
}
输出
first_list=[1,2,3]
second_list=[]
second_list.append(first_list.pop(2))
print(second_list)
输出
[3]
print(first_list)
但删除最容易比弹出,使用值是最好的方法,但有时我们需要使用索引,我喜欢pop因为返回item的值。
我希望得到帮助
答案 1 :(得分:0)
要从一个列表中删除并使用这两种方法添加到另一个列表,您可以执行以下任一操作:
<强>弹出强>:
secondlist.append(firstlist.pop(1))
删除强>:
item = 'b'
firstlist.remove(item)
secondlist.append(item)
至于为什么一种方法优于另一种方法,它在很大程度上取决于列表的大小以及要删除的项目。假设您的列表为firstlist = ['a', 'b', 'c', 'd']
如果您要删除第一项,则remove
将比pop
更快
firstlist.pop(0)
183 ns ± 4.64 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
firstlist.remove('a')
130 ns ± 2.45 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
但是如果你想删除最后一项,那么pop
会更快
firstlist.pop(3)
161 ns ± 2 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
firstlist.remove('d')
182 ns ± 5.1 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
这是因为,正如评论中所提到的,remove
将在整个列表中搜索该项目的第一次出现。对于更长的列表,这种差异将被放大:
firstlist = [x for x in 'abcdefghijklmnopqrstuvwxyz']
firstlist.pop(25)
938 ns ± 19.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
firstlist.remove('z')
1.28 µs ± 21.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)