|
|
|
|
|
by t-vi
1061 days ago
|
|
The logic error seems to be that you have the second for loop where you only want to destructure the splitted line into a tuple. Now writing that decomposition as a for loop over a one-element list (as in the corrected code) works, but seems "hmhm".
In other words, the misunderstanding here is that you want a chain of generators, not a "nested for loop"-generator. A more proper solution could be to chain the generator expressions:
with lines = ["a,b", "c,d"]
you could do ((a,b) for a, b in (l.split(',') for l in lines))
|
|
However, the approach in my code generates less bytecode and performed slightly faster, as the chained generator expressions add more overhead. See here: https://godbolt.org/z/nT8a5eMGa
I agree that your approach requires less usage of (what I'd consider) unintuitive syntax, so I should probably add it as an alternative viable solution!
Since if performance is so critical as to worry over something like this, we'd probably both agree that you should probably be wary of choosing Python in the first place.