Reputation: 19
item = {"num1":[1,3] , "num2": [2,4]}
wanted output
num1:1
num2:2
num1:3
num2:4
(basically order by value but some how keep the key it came with it doesn't have to be in a dictionary as long as the output is order by value)
I'm completely stump atm any help would be much appreciated
Upvotes: 1
Views: 34
Reputation: 2596
sorted(target, key=lambda x: x[1])
)item = {'num1': [1, 3], 'num2': [2, 4]}
result = sorted(
[
(k, v)
for k, list_ in item.items()
for v in list_
],
key=lambda x: x[1],
)
print(result)
for r in result:
print(f'{r[0]}:{r[1]}')
output:
[('num1', 1), ('num2', 2), ('num1', 3), ('num2', 4)]
num1:1
num2:2
num1:3
num2:4
@OldBill's solution:
item = {'num1': [1, 3], 'num2': [2, 4]}
result = sorted([
(v, k)
for k, list_ in item.items()
for v in list_
])
print(result)
for v, k in result:
print(f'{k}:{v}')
output:
[(1, 'num1'), (2, 'num2'), (3, 'num1'), (4, 'num2')]
num1:1
num2:2
num1:3
num2:4
Upvotes: 3