合并列表和列表中的元组
Merging a list and a tuple in list
假设我有以下列表:
l1 = [['a','b','c'],['x','y','z'],['i','j','k']]
l2 = [(0,0.1),(0,0.2),(2,0.3),(2,0.4),(1,0.5),(0,0.6)]
我想在 l2
的键和 l1
的索引上合并两个列表,这样我得到:
[[0.1,['a','b','c'],
[0.2,['a','b','c'],
[0.3,['i','j','k'],
[0.4,['i','j','k'],
[0.5,['x','y','z'],
[0.6,['a','b','c']]
我想知道这是怎么做到的?因为合并不在键上。
带有一些索引的列表理解会很好
l1 = [['a', 'b', 'c'], ['x', 'y', 'z'], ['i', 'j', 'k']]
l2 = [(0, 0.1), (0, 0.2), (2, 0.3), (2, 0.4), (1, 0.5), (0, 0.6)]
result = [[value, l1[idx]] for idx, value in l2]
for 循环等价物
result = []
for idx, value in l2:
l1_item = l1[idx]
result.append([value, l1_item])
简单理解即可:
[[v, l1[i]] for i, v in l2]
# [[0.1, ['a', 'b', 'c']],
# [0.2, ['a', 'b', 'c']],
# [0.3, ['i', 'j', 'k']],
# [0.4, ['i', 'j', 'k']],
# [0.5, ['x', 'y', 'z']],
# [0.6, ['a', 'b', 'c']]]
l1 = [['a','b','c'],['x','y','z'],['i','j','k']]
l2 = [(0,0.1),(0,0.2),(2,0.3),(2,0.4),(1,0.5),(0,0.6)]
print([[v,l1[k]] for k,v in l2])
假设我有以下列表:
l1 = [['a','b','c'],['x','y','z'],['i','j','k']]
l2 = [(0,0.1),(0,0.2),(2,0.3),(2,0.4),(1,0.5),(0,0.6)]
我想在 l2
的键和 l1
的索引上合并两个列表,这样我得到:
[[0.1,['a','b','c'],
[0.2,['a','b','c'],
[0.3,['i','j','k'],
[0.4,['i','j','k'],
[0.5,['x','y','z'],
[0.6,['a','b','c']]
我想知道这是怎么做到的?因为合并不在键上。
带有一些索引的列表理解会很好
l1 = [['a', 'b', 'c'], ['x', 'y', 'z'], ['i', 'j', 'k']]
l2 = [(0, 0.1), (0, 0.2), (2, 0.3), (2, 0.4), (1, 0.5), (0, 0.6)]
result = [[value, l1[idx]] for idx, value in l2]
for 循环等价物
result = []
for idx, value in l2:
l1_item = l1[idx]
result.append([value, l1_item])
简单理解即可:
[[v, l1[i]] for i, v in l2]
# [[0.1, ['a', 'b', 'c']],
# [0.2, ['a', 'b', 'c']],
# [0.3, ['i', 'j', 'k']],
# [0.4, ['i', 'j', 'k']],
# [0.5, ['x', 'y', 'z']],
# [0.6, ['a', 'b', 'c']]]
l1 = [['a','b','c'],['x','y','z'],['i','j','k']]
l2 = [(0,0.1),(0,0.2),(2,0.3),(2,0.4),(1,0.5),(0,0.6)]
print([[v,l1[k]] for k,v in l2])