我有一个列表列表。每个子列表都包含三个字符串。
bins = [['1', '2', '3.5'], ['4', '5', '6.0']]
我需要将其转换为列表列表,其中每个子列表由两个整数和一个浮点数组成。我正在考虑按照以下方式进行列表理解:
[ [int(start), int(stop), float(value)] for bn in bins for [start, stop, value] in bn]
我有一个列表列表。每个子列表都包含三个字符串。
bins = [['1', '2', '3.5'], ['4', '5', '6.0']]
我需要将其转换为列表列表,其中每个子列表由两个整数和一个浮点数组成。我正在考虑按照以下方式进行列表理解:
[ [int(start), int(stop), float(value)] for bn in bins for [start, stop, value] in bn]
你很接近:
[[int(start), int(stop), float(value)] for start, stop, value in bins]
您不需要bn
变量来保存每个 bin 或循环来遍历其内容;每个bin可以直接解包成三个变量。
另一种选择是使用map
>>> bins = [['1', '2', '3.5'], ['4', '5', '6.0']]
>>> map(lambda x: [int(x[0]), int(x[1]), float(x[2])], bins)
[[1, 2, 3.5], [4, 5, 6.0]]