德玛西亚99
result = next(zip(*[(2,2,3), (4,5,2), (1,3,8)]))或者,如果记录实际上是字符串:result = next(zip(*(data.split('-') for data in ['2-2-3', '4-5-2', '1-3-8'])))解释:>>> list(zip(*[(2,2,3), (4,5,2), (1,3,8)]))
[(2, 4, 1), (2, 5, 3), (3, 2, 8)]你想得到第一个元素,所以你可以这样做list(zip(*[(2,2,3), (4,5,2), (1,3,8)]))[0],但这不是必需的,因为zip它是即时构造它的返回值,并且不会一次计算所有它们(所以它不会浪费内存),所以你可以让它生成并只返回第一个值next(zip(...))。
收到一只叮咚
尝试这个:arr = ['2-2-3', '4-5-2', '1-3-8']result = [s.split('-')[0] for s in arr]解释:[s for s in arr]# output: ['2-2-3', '4-5-2', '1-3-8'][s.split('-') for s in arr]# output: [['2', '2', '3'], ['4', '5', '2'], ['1', '3', '8']][s.split('-')[0] for s in arr]# output: ['2', '4', '1']