簡體   English   中英

使用列表推導修改嵌套列表元素

[英]Modify nested list elements using list comprehension

我想制作lst_new這樣,

items = (.1, .5, .9)
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

lst_new == [[[.1, 2, 3], [.4, 5, 6], [.7, 8, 9]], [[.5, 2, 3], [2, 5, 6], [3.5, 8, 9]], [[.9, 2, 3], [3.6, 5, 6], [6.3, 8, 9]]]

使用列表理解,

lst_new = [x[0] * i for i in items for x in lst]

但顯然它沒有按預期工作。 幫助?

您的問題是您只包含x的第一個值,而不是全部,並且您需要嵌套列表理解來增加列表結構的深度:

lst_new = [[[x[0] * m] + x[1:] for x in lst] for m in items]

Output

[
 [[0.1, 2, 3], [0.4, 5, 6], [0.7, 8, 9]],
 [[0.5, 2, 3], [2.0, 5, 6], [3.5, 8, 9]],
 [[0.9, 2, 3], [3.6, 5, 6], [6.3, 8, 9]]
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM