python - 转换具有不同格式转换的列表列表的项目

标签 python python-3.x list

我有以下列表列表(用 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']]

我尝试了以下方法:

  1. 我知道如何将前三个字符串转换为 int
[list(map(int, li[:-1])) for li in lol]
  1. 我知道如何将最后一个字符串转换为daytime
list(map(dateConverter, [li[-1] for li in lol]))
  1. 不知道如何使用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/

相关文章:

如果对象不是无,则 Python 获取属性

作为向量的 Clojure 惰性序列

java - 如何使用 java JDBC 获取 MySql 的数据库 "Schema"名称列表

python - 如何在模板中显示来自 django 中 2 个模型的数据以及一对多关系

python - 访问字典中的 Plist 项

python - 从终端返回输出

python-3.x - 聚合 Pandas DataFrame 中重复行的列表项

python : list of dictionary values by alphabetical order of keys

python - 修改 statsmodels 图表

python - 如何在 <select> Python 中点击 <option>