如何只获得另一个列表中一个列表的值?

时间:2020-10-16 06:38:09

标签: python-3.x

假设我有两个列表:

a = [1,2,3,4,5]
b = [float]

我的要求是只获取“ b”中“ a”列表的值,即

b = [1,2,3,4,5, float]

因此,如果我们追加插入内容,那将再次创建我不想要的列表清单。

任何建议

3 个答案:

答案 0 :(得分:3)

假设您输入的是:

a = [1,2,3,4,5]
b = ['float']

b{:] = a+b

print (b)

其输出将是:

[1, 2, 3, 4, 5, 'float']

如果您输入的是:

a = [1,2,3,4,5]
b = [float]

那么您的输出将是:

[1, 2, 3, 4, 5, <class 'float'>]

答案 1 :(得分:2)

这可能有点笨拙,但是可以满足您的要求:

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)

如果您不介意使用deque而不是list,也可以这样做:

from collections import deque

a = [1, 2, 3, 4, 5]
b = deque(["float"])

b.extendleft(reversed(a))   # deque([1, 2, 3, 4, 5, 'float'])

答案 2 :(得分:1)

您可以使用:

a.__add__(b)

输出:

[1,2,3,4,5,]