我有以下列表列表(用 lol
表示):
[['365', '336', '365', 'E<;EjD'],
['365', '336', '365', 'E<;EkD'],
['365', '336', '365', 'E<;F0D'],
['0', '0', '335', 'E<;GaQ'],
['0', '0', '335', 'E<;GbQ']]
我正在尝试以这样一种方式转换 lol
,即子列表的前三个字符串被转换为 int
并且同一子列表的每个最后一个字符串-待转换为datetime
的列表(dateConverter()
是将string转换为daytime)。
我期望输出如下:
[[365, 336, 365, '2021-12-11T21:58:20'],
[365, 336, 365, '2021-12-11T21:58:20'],
[365, 336, 365, '2021-12-11T21:59:20'],
[0, 0, 335, '2021-12-11T22:0:20'],
[0, 0, 335, '2021-12-11T22:1:20']]
我尝试了以下方法:
- 我知道如何将前三个字符串转换为
int
。
[list(map(int, li[:-1])) for li in lol]
- 我知道如何将最后一个字符串转换为
daytime
。
list(map(dateConverter, [li[-1] for li in lol]))
- 我不知道如何使用
map
函数或任何其他方式实现二合一。我尝试了以下但对我不起作用。
[list(map(int, dateConverter, li[:-1], li[-1])) for li in lol]
最佳答案
这个呢?
lol = [['365', '336', '365', 'E<;EjD'],
['365', '336', '365', 'E<;EkD'],
['365', '336', '365', 'E<;F0D'],
['0', '0', '335', 'E<;GaQ'],
['0', '0', '335', 'E<;GbQ']]
converted = [
[int(x) if i < 3 else date_converter(x) for (i, x) in enumerate(li)] for li in lol
]
关于python - 转换具有不同格式转换的列表列表的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73225274/