Python 3.x 如何在另一个列表中仅获取一个列表的值?
假设我有两个列表:Python 3.x 如何在另一个列表中仅获取一个列表的值?,python-3.x,Python 3.x,假设我有两个列表: a = [1,2,3,4,5] b = [float] 我的要求是只获取“b”中“a”列表的值,即 b = [1,2,3,4,5, float] 所以,如果我们附加insert,这将再次创建列表的列表,这是我不想要的 任何建议您可以使用: a.__add__(b) 输出: [1,2,3,4,5,]这可能有点笨拙,但它可以满足您的需要: a = [1, 2, 3, 4, 5] b = ["float"] print(id(b)) for n in
a = [1,2,3,4,5]
b = [float]
我的要求是只获取“b”中“a”列表的值,即
b = [1,2,3,4,5, float]
所以,如果我们附加insert,这将再次创建列表的列表,这是我不想要的
任何建议您可以使用:
a.__add__(b)
输出:
[1,2,3,4,5,]这可能有点笨拙,但它可以满足您的需要:
a = [1, 2, 3, 4, 5]
b = ["float"]
print(id(b))
for n in reversed(a):
b.insert(0, n)
print(b) # [1, 2, 3, 4, 5, 'float']
print(id(b))
请注意,id
不会更改-不会创建新列表
切片分配也会起作用:
b0 = b[0]
b[:len(a)] = a
b.append(b0)
如果您不介意使用列表而不是
列表
,您也可以这样做:
from collections import deque
a = [1, 2, 3, 4, 5]
b = deque(["float"])
b.extendleft(reversed(a)) # deque([1, 2, 3, 4, 5, 'float'])
假设您的输入是:
a = [1,2,3,4,5]
b = ['float']
b{:] = a+b
print (b)
a = [1,2,3,4,5]
b = [float]
其输出将为:
[1, 2, 3, 4, 5, 'float']
如果您的输入是:
a = [1,2,3,4,5]
b = ['float']
b{:] = a+b
print (b)
a = [1,2,3,4,5]
b = [float]
那么您的输出将是:
[1, 2, 3, 4, 5, <class 'float'>]
[1,2,3,4,5]
b=a+b就可以得到结果吗?我不建议用很多代码来做这件事。@JoeFerndz不,这会创建一个新的列表,而不是OP想要的。b[:]=a+b
>a=[1,2,3,4]
<140368030961024
>id(b)
=a+b
>id(b)
140368030374656
>b
[1,2,3,4,'float']
@JoeFerndzb[:]
就可以了。聪明+1.