我有两个列表,我循环遍历它们以匹配vals1
第二个列表中第一个列表中的元素vals2
。如果元素 indexed[0] fromvals1
存在于vals2
index[0] 中,我需要对元素 index[1] from 进行分级vals2
并替换 indexed[0] from 的元素vals1
。如果它不存在,我想保持现有元素不变vals1
。
所以如果vals1
=[[callid1, 2021/06/04, 1000, 9000], [callid2, 2021/06/04, 1001, 9001], [callid3, 2021/06/04, 1000, 9000], [callid4, 2021/06/04, 1002, 9002]]
和vals1
=[[Tom, 'some value', 1000], [Sara, 'some value', 1001], [Pat, 'some value', 1003], [Craig, 'some value', 1004]]
我希望实现的输出vals1
是:
[[callid1, 2021/06/04, Tom, 9000], [callid2, 2021/06/04, Sara, 9001], [callid3, 2021/06/04, Tom, 9000], [callid4, 2021/06/04, 1002, 9002]]
我最近才开始学习 Python,但可以在 Apps Script 中使用 ForEach 循环并为每次迭代调用 .find() 来实现这一点。
我尝试了下面的方法,它提供了所需的输出,但返回了两次。
def lookups(vals1, vals2):
for x in vals1:
for y in vals2:
if x[3] == y[3]:
x[3] = y[0]
return calls
任何建议将不胜感激。
我不知道我的理解是否正确,但是根据您的示例,我会说,对于您的函数,只需更改索引即可。
def lookups(vals1, vals2):
for x in vals1:
for y in vals2:
if x[2] == y[2]:
x[2] = y[0]
vals1 = [['callid1', '2021/06/04', 1000, 9000], ['callid2', '2021/06/04', 1001, 9001], ['callid3', '2021/06/04', 1000, 9000], ['callid4', '2021/06/04', 1002, 9002]]
vals2 = [['Tom', 'some value', 1000], ['Sara', 'some value', 1001], ['Pat', 'some value', 1003], ['Craig', 'some value', 1004]]
lookups(vals1, vals2)
print(vals1)
此代码片段打印所需的输出:
[['callid1', '2021/06/04', 'Tom', 9000], ['callid2', '2021/06/04', 'Sara', 9001], ['callid3', '2021/06/04', 'Tom', 9000], ['callid4', '2021/06/04', 1002, 9002]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句