开发者社区 问答 正文

在Python的同一行中使用if else for和del吗?

我有一个列表,其项目是可变长度的列表。

如果这些可变长度的列表项超过此长度,则需要将其截断为特定长度(x)。

我做了这个小的功能。

def truncateList(batch_, trim_len):

truncated_list = []
for eachAbstract in train_abstracts_encoded:
    if len(eachAbstract) > trim_len:
        del eachAbstract[trim_len:]
        truncated_list.append(eachAbstract)
    else:
        truncated_list.append(eachAbstract)
return truncated_list

但是,我可以在一行中以更pythonic的方式执行此操作吗?

像这样:

prefData = [ del eachEncodedAbstract[MAX_LEN:] if len(eachEncodedAbstract) > 510 else eachEncodedAbstract for eachEncodedAbstract in test_abstracts_encoded]

但这没有用,我得到了错误。

    prefData = [ del eachEncodedAbstract[MAX_LEN:] if len(eachEncodedAbstract) > 510 else eachEncodedAbstract for eachEncodedAbstract in test_abstracts_encoded]
               ^
    SyntaxError: invalid syntax

任何帮助将不胜感激。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 23:55:53 607 分享 版权
1 条回答
写回答
取消 提交回答
  • 您可能需要eachEncodedAbstract [:MAX_LEN]

    例如:

    prefData = [eachEncodedAbstract[:MAX_LEN] if len(eachEncodedAbstract) > 510 else eachEncodedAbstract for eachEncodedAbstract in test_abstracts_encoded]
    

    回答来源:stackoverflow

    2020-03-23 23:55:59
    赞同 展开评论
问答分类:
问答地址: