Here is a solution with one for loop.
for i in reduce(lambda x, y: x+y, myDict.values()):
print i
myDict.values
it's a list of list.
In [33]: myDict.values()
Out[33]: [['1', '2', '3'], ['1', '2', '3', '4'], ['1', '2']]
With using reduce
i made it as like a single list.
In [34]: reduce(lambda x, y: x+y, myDict.values())
Out[34]: ['1', '2', '3', '1', '2', '3', '4', '1', '2']
And iterate though it
Edit
Regarding time of execution using timeit
In [69]: def test1():
for sublist in myDict.values():
for value in sublist:
print(value)
....:
In [70]: def test2():
for i in reduce(lambda x, y: x+y, myDict.values()):
print i
....:
In [71]: %timeit test1
10000000 loops, best of 3: 27 ns per loop
In [72]: %timeit test2
10000000 loops, best of 3: 25.6 ns per loop
It's perform better.
Perform as per the timeit
module
In [81]: timeit.timeit(test2, number=10000)
Out[81]: 0.016376018524169922
In [82]: timeit.timeit(test1, number=10000)
Out[82]: 0.023879051208496094