为了账号安全,请及时绑定邮箱和手机立即绑定

如何在与另一个列表相对应的嵌套列表中添加值?

如何在与另一个列表相对应的嵌套列表中添加值?

慕盖茨4494581 2021-12-17 16:43:28
我正在建立一个线性连接,我有两个列表:a = [1,1,1,2,2,3,3,3,4]b = [1,3,7,2,3,4,7,8,9]a[i] 相关 b[i]我重组b为c:c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]]我尝试a在每个子列表中添加相应的值c以获得:d = [[1, 1, 3], [1, 7], [2 ,2, 3], [3, 4], [3, 7, 8], [4, 9]]c原来in 的每个子列表中的第一个值b与alike相关c[0][0] = b[0],并添加a[0]到c[0], c[1][0] = b[2],因此添加a[2]到c[1]。如果 sublist inc和 sublist = 的第一个值,则b[i]添加a[i]到每个子列表。我被卡住了。
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

您可以从中构建一个迭代器a并使用它的连续切片,itertools.islice以便根据 中子列表的长度使用它c,但只从每个切片中选择第一项:


from itertools import islice


a = [1,1,1,2,2,3,3,3,4]

c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]]

a_ = iter(a)


[[list(islice(a_, len(j)))[0]] + [i for i in j] for j in c]

输出


[[1, 1, 3], [1, 7], [2, 2, 3], [3, 4], [3, 7, 8], [4, 9]]


查看完整回答
反对 回复 2021-12-17
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

另一种方法。基本方式。


#!/bin/python


a = [1,1,1,2,2,3,3,3,4]


b = [1,3,7,2,3,4,7,8,9]


c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]]


#d = [[1, 1, 3], [1, 7], [2 ,2, 3], [3, 4], [3, 7, 8], [4, 9]]


element_count=0

d=[]

for x in c:

    print (a[element_count])

    print(x)

    d.append([a[element_count]]+x)

    element_count+=len(x)


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 243 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号