gpt4 book ai didi

python - 根据其中一个列表元素的值,从现有列表中准备 4 个列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:45 25 4
gpt4 key购买 nike

我需要根据一个列表的元素准备两个列表。

>>> a = ['ether1000', 'ether1000', 'ether1000', 'ether1000', 'ether100Gig', 'ether100Gig']
>>> b = ['1/11/5', '1/11/6', '1/11/7', '1/11/8', '1/6/1', '1/6/2']

我需要将列表 a 的元素映射到列表 b 的元素,并从列表 b 为列表 b 创建一个新列表有 ether1000

所以这应该是结果列表:

res1 = ['ether1000', 'ether1000', 'ether1000', 'ether1000']
res2 = ['1/11/5', '1/11/6', '1/11/7', '1/11/8']
res3 = ['ether100Gig', 'ether100Gig']
res4 = ['1/6/1', '1/6/2']

我尝试压缩 2 个列表:

>>> zip(a, b)
[('ether1000', '1/11/5'), ('ether1000', '1/11/6'), ('ether1000', '1/11/7'), ('ether1000', '1/11/8'), ('ether100Gig', '1/6/1'), ('ether100Gig', '1/6/2')]

>>> c = zip(a,b)
>>> for i in c:
... if 'ether1000' in i:
... d.append[i(1)]
...
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: 'tuple' object is not callable

但是据此,我不确定如何提取具有 ether1000 值的元素并制作 2 个列表,如上所示。如果有人可以提示我如何解决这个问题,那会很好吗?

根据答案进行编辑:

我得到了这两个列表,无论如何我可以制作其他两个列表 res3 和 res4 吗?

>>> [el[0] for el in c if 'ether1000' in el]
['ether1000', 'ether1000', 'ether1000', 'ether1000']

>>> [i[1] for i in zip(a,b) if 'ether1000' in i]
['1/11/5', '1/11/6', '1/11/7', '1/11/8']

最佳答案

您应该通过以下方式调用元组的索引调用.append():

d.append(i[1])

你把括号和圆括号搞混了。 .append() 有括号,因为它是一个函数,当访问列表或元组中的项目时,使用括号(即 i[index])。您的错误基本上是在告诉您元组不是函数。您也可以使用列表理解来帮助:

[i[1] for i in zip(a,b) if 'ether1000' in i]

感谢@ChristianDean

关于python - 根据其中一个列表元素的值,从现有列表中准备 4 个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com