繁体   English   中英

从一个列表到另一个列表

[英]List values from one to another list

我几乎是python的新手,我遇到了一个看似简单的问题。 我有两个清单

L1 = [a,b,c]
L2 = [1,2,3]

现在我想将值从L2替换为L1成为L1 = [1,2,3]

现在这就是乐趣所在

L2的长度始终是L1中可以有多少个唯一项。

L2 = [1,2,3,4,5]
than
L1 = [a,b,c,d,e]
or
L2 = [1,2]
than
L1 = [a,b]

但那不是全部...... L1的长度可以不同,并且在L2的长度之后无序...:

例如:

L2 = [1,2]
than L1 might be
L1 = [a,b,a,a,a,b] #(first two items are always different)
or
L2 = [1,2,3,4,5]
than L1 might be
L1 = [a,b,c,d,e,a,a,e,e,b,b] #(first 5 items are different) 

我希望我解释得足够好。 如果有任何问题请随意提问!

我希望有人可以帮助我,或者给我一个提示,在哪里或者搜索什么。 我想要解决这个问题。

thx提前

贾登

_编辑__

L1和L2是在我的脚本的早期创建的。 现在,我想以某种方式连接两个列表中的项目。

L1[0] = L2[0]
L1[1] = L2[1]

等等。 对于L2的长度,但它必须发生在L1中的每个项目,因为L1总是比L2长。 那就是问题所在。

希望这可以帮助,

贾登

您可以替换列表的切片。

>>> L1 = ['a','b','c','d','e','a','a','e','e','b','b']
>>> L2 = [1,2,3,4,5]
>>> length = len(L2)
>>> L1[:length] = L2[:length]
>>> print(L1)
[1, 2, 3, 4, 5, 'a', 'a', 'e', 'e', 'b', 'b']

以防万一我误解了你想要的东西,并希望将每个'a'实例替换为1'b'替换为2 ,等等,这有效:

>>> L1 = ['a','b','c','d','e','a','a','e','e','b','b']
>>> L2 = [1,2,3,4,5]
>>> mapping = dict(zip(L1, L2))
>>> for i, k in enumerate(L1[:]):
        L1[i] = mapping[k]
>>> print(L1)
[1, 2, 3, 4, 5, 1, 1, 5, 5, 2, 2]

您可以创建一个包含从l1到l2的值的映射的字典,{'a':1,'b':2,....},然后遍历l1并替换值。

d = dict ((l1[idx],y) for idx, y in enumerate(l2))
l1 = [d[x] for x in l1]

编辑:为了更好地理解您的问题,发布给定示例的预期输出将很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM