python: convert “5,4,2,4,1,0” into [[5, 4], [2, 4], [1, 0]]

后端 未结 11 1116
梦如初夏
梦如初夏 2020-11-28 15:33

Is there a \"straightforward\" way to convert a str containing numbers into a list of [x,y] ints?

# from: \'5,4,2,4,1,0,3,0,5,1,3,3,14,32,3,5\'
# to: [[5, 4         


        
11条回答
  •  误落风尘
    2020-11-28 15:47

    #!/usr/bin/env python
    
    from itertools import izip
    
    def pairwise(iterable):
        "s -> (s0,s1), (s2,s3), (s4, s5), ..."
        a = iter(iterable)
        return izip(a, a)
    
    s = '5,4,2,4,1,0,3,0,5,1,3,3,4,3,3,5'
    fields = s.split(',')
    print [[int(x), int(y)] for x,y in pairwise(fields)]
    

    Taken from @martineau's answer to my question, which I have found to be very fast.

    Output:

    [[5, 4], [2, 4], [1, 0], [3, 0], [5, 1], [3, 3], [4, 3], [3, 5]]
    

提交回复
热议问题