【问题标题】:Shortest way to to write split function and assign variables?编写拆分函数和分配变量的最短方法?
【发布时间】:2020-03-19 00:38:18
【问题描述】:

我正在寻找一种更短但仍然简洁灵活的方式来编写我在下面的内容。

可使用的变量(长度可变)

drpfile_exportname = '1911_CocaCola_XMasNow_TVC30sec_03_Roughcut_Tv10_PV01_Ov01_200319_prev_for_approval_H264'

很长的路要走,但很干净

# Split string by "_"
drpfile_exportname_list = drpfile_exportname.split("_")
# Set variables
ul_date = drpfile_exportname_list[0]
up_client = drpfile_exportname_list[1]
up_cprojname = drpfile_exportname_list[2]
# Join variables to create desired name
upload_projname = "_".join((ul_date, up_client, up_cprojname))

替代的 oneliner 不灵活,因为没有分配变量,我认为这不是解决问题的好方法

upload_projname = ("_".join(drpfile_exportname.split('_')[0:3])) 

认为这样的事情会起作用,但总是遇到问题

ul_date, up_client, up_cprojname = drpfile_exportname.split('_', 2)

打印:

print("\nProject name:    {}".format(upload_projname))

应该存储在变量中的结果:

项目名称:1911_CocaCola_XMasNow

【问题讨论】:

    标签: python function variables join split


    【解决方案1】:

    你可以对拆分的结果进行切片。

    ul_date, up_client, up_cprojname = drpfile_exportname.split('_')[:3]
    

    或者您可以为要忽略的部分分配一个虚拟变量

    ul_date, up_client, up_cprojname, *_ = drpfile_exportname.split('_')
    

    【讨论】:

    • 感谢您的快速答复。非常感谢。我已经使用了 split 的切片结果,但试图找到一个 oneliner。但是我认为没有办法在同一行中也分配upload_projname变量,对吧?感谢“虚拟变量”方式,我不知道那个!
    • 您不能在单行中分配单个变量和upload_projname
    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 2019-07-02
    • 2011-12-07
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    相关资源
    最近更新 更多