Python 将仅列表的子项相乘
我有一个这样的数据结构Python 将仅列表的子项相乘,python,list,list-comprehension,Python,List,List Comprehension,我有一个这样的数据结构 [[1,2,3,4,5], {9,2,5,8,7}, (7, 4, 8, 6)] 一个包含列表、集合和元组的大列表 我想将列表中的所有内容乘以3,但不是元组或集合中的内容。输出应为: [[3,6,9,12,15], {9,2,5,8,7}, (7, 4, 8, 6)] 列表中的项目全部乘以3,其余保持不变 我试过这个: l = [[2,6,9,13,15], {9,2,5,8,7}, (7, 4, 8, 6)] newList = [[subitem*3 for su
[[1,2,3,4,5], {9,2,5,8,7}, (7, 4, 8, 6)]
一个包含列表、集合和元组的大列表
我想将列表中的所有内容乘以3,但不是元组或集合中的内容。输出应为:
[[3,6,9,12,15], {9,2,5,8,7}, (7, 4, 8, 6)]
列表中的项目全部乘以3,其余保持不变
我试过这个:
l = [[2,6,9,13,15], {9,2,5,8,7}, (7, 4, 8, 6)]
newList = [[subitem*3 for subitem in subList ] for subList in l]
print(newList)
但这给了我糟糕的输出:
[[3, 6, 9, 12, 15], [24, 27, 6, 15, 21], [21, 12, 24, 18]]
列表很好,但是集合和元组需要保持不变,它们也不应该转换为列表。我希望输出与前面显示的完全相同
谢谢 您可以使用这种理解模式:
[x如果在lst中a或b代表x]
:
new_list = [[3*y for y in x] if isinstance(x, list) else x for x in l]
寻找更多的讨论。您可以使用以下理解模式:
[x如果在lst中a或b代表x]
:
new_list = [[3*y for y in x] if isinstance(x, list) else x for x in l]
寻找更多的讨论。您提供的代码非常接近,您只需添加一个检查子列表是否为列表,如果是,则倍增,否则别管了
l = [[2,6,9,13,15], {9,2,5,8,7}, (7, 4, 8, 6)]
newList = [[subitem*3 for subitem in subList ] if type(subList) is list else subList for subList in l]
print(newList)
您提供的代码非常接近,您只需添加一个检查子列表是否为列表,然后如果是,则乘法,否则别管它
l = [[2,6,9,13,15], {9,2,5,8,7}, (7, 4, 8, 6)]
newList = [[subitem*3 for subitem in subList ] if type(subList) is list else subList for subList in l]
print(newList)
这是一个选择
这是一个选择 然后添加一个条件并检查子列表是否是
list
的实例。然后添加一个条件并检查子列表是否是list
的实例。感谢您的回答,我不知道解决方案这么简单。道歉。我会接受这个,因为它是第一次发布的。(还不能接受,必须等待5分钟)谢谢你的回答,我不知道解决方案这么简单。道歉。我会接受这个,因为它是第一次发布的。(尚未接受,必须等待5分钟)