gpt4 book ai didi

Python - 将列表中的项目设置为字典值列表

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

给定列表:

links = [ 'link1', 'link2', 'link3', 'link3', 'link4', 'link5', 'link6', 'link6', 'link7', 'link8', 'link9', 'link10']

和这个 dicts 列表:

 sources =  [{'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}, {'src': ''}]

我想将每个 src 值设置为其对应的链接,如下所示:

{'src': 'link1'}, {'src': 'link2'}...

我试过:

for s in sources:
for l in links:
s['src'] = l
print (s)

但是这个工作做了 10 次,我只想让它完成一次。

我怎样才能用一行代码实现这一目标?

最佳答案

我假设 src 指令中还有其他内容,否则 sources 将毫无意义:

for src, link in zip(sources, links):
src['src'] = link

可以把它写成一行:

[s.update({'src': x }) for s, x in zip(sources, links)]

但这将是所谓的“有副作用的理解”,并且被大多数 pythonista 认为是低级趣味。循环更像 pythonic。

以上还假设 len(sources)==len(links) 否则考虑:

for src, link in zip(sources, itertools.cycle(links)):
src['src'] = link

这将以循环方式填充链接。

如果这些 src 字典实际上是空的,则无需保留它们的列表,只需从头开始创建即可:

 sources = [{'src': x} for x in links]

关于Python - 将列表中的项目设置为字典值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41878896/

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