【发布时间】:2015-06-08 21:26:06
【问题描述】:
我正在尝试交叉检查两个嵌套列表值,如果找到匹配项,请将 list1 中的值附加到 list2 中。
例如;
list1 = [[ip, hostname], [ip, hostname], [ip, hostname]]
list2 = [[ip, ip_upper, type, hostname, location], [ip, ip_upper, type, hostname, location], [ip, ip_upper, type, hostname, location]]
我想检查list1[x][0]中的值是否在list2中,如果是,请将List2[x][3]的值替换为List1[x][1]。
我正在尝试的是;
count = 0;
for row in list2:
if row[0] in hosts[count][0]:
new_hostname = hosts[count][1]
row[4].append(new_hostname)
count += 1
else:
continue
count += 1
我知道上面是不正确的,我正在努力弄清楚如何在遍历 list2 时访问值 list1。原因是因为我需要检查每一行,然后用行的值再修改行内的具体值。
感谢您的快速响应!
我尝试实现给定的代码,但在尝试从我的列表中创建字典时遇到了麻烦:
哇,你们!
def doStuff(list1, list2):
mydic = dict(list2)
for l in list1:
l[3] = mydic.get(l[0], l[3])
return mydic
new_dic = doStuff(hostname, old_rows)
我收到错误消息;
mydic = dict(list2)
ValueError: dictionary update sequence element #0 has length 6; 2 is required
有什么想法吗?
【问题讨论】:
-
您有什么具体问题吗?如果是这样,请编辑您的帖子并包含您的问题。
-
可以
list2改订单吗? -
仅供参考,但如果
list中的元素在质量上是异质的,那么它可能不应该是list。 -
列表的顺序并不重要,只需要检查每个IP并将值插入为nesc即可。
-
我的原始答案需要一个 2 元素列表的列表,你的似乎以某种方式交换了,也许参数也应该交换?
标签: python list nested iteration