如何使其成为单线?将列表转换为一堆参数

问题描述

我有以下代码:

----     92 PARAMETER result  selected observations

        height1     weight1     height2     weight2

i1                            67.445523  163.692389
i2                            68.649190  160.084811
i3                            69.503911  164.720010
i4    59.850261  145.704159
i5    65.341938  155.586984
i6    64.142009  154.335001
i7    67.030368  158.768813
i8                            73.236515  164.704340
i9                            63.279277  149.784500
i10   69.001848  160.063428
i11                           63.930208  152.827710
i12   70.719334  164.885704
i13                           63.614565  150.071072
i14                           70.533320  160.722483
i15   78.417676  172.298652
i16                           67.404942  158.310596
i17   62.504967  150.899428
i18   62.122630  150.024298
i19                           72.999194  166.771223
i20   74.935107  170.820610
i21                           60.372876  149.152520
i22                           76.748649  167.462369
i23                           75.433331  171.773607
i24                           65.717553  160.134888
i25                           67.301426  158.713710

我想使其像这样一线:

from datetime import datetime 

ds = "2020.10.10.12.30.59"

y,M,d,h,m,s = [int(x) for x in ds.split('.')]
dt = datetime(y,s)

print(dt)

这当然是行不通的。但是可以通过某种方式完成吗?

解决方法

从那时起,您只需使用unpacking进行传播:

dt = datetime(*[int(x) for x in ds.split('.')])

请注意*。这样会将数据“传播”到每个参数中。

,

您在这里确实使用了错误的工具;使用datetime.strptime()代替:

dt = datetime.strptime(ds,"%Y.%m.%d.%H.%M.%S")

,并避免所有拆分和转换为整数的工作。此外,这样可以更好地处理错误的输入,将%Y的{​​{1}}模式接受两位数的年份,但是分割转换方法接受它,但是给您错误的日期(例如strptime()会给您20.10.10.12.30.59而不是引发异常)。

如果必须使用拆分和转换,则可以使用datetime.datetime(20,10,12,30,59)map()应用于每个拆分结果,然后使用int来应用结果整数作为单独的参数:

*

,这也适用于生成器表达式:

dt = datetime(*map(int,ds.split(".")))

演示:

dt = datetime(*(int(s) for s in ds.split(".")))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...