根据条件向python列表中的每个项添加字符串

2024-09-29 19:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

如果列表中最后三个字符是“”,我想将字符串“Equity”添加到列表中的每个项目。否则,我想添加“索引”。理想情况下,如果有办法的话,我不想使用循环。你知道吗

例如,我想要下面的列表

list = ['VOD LN','HSBA LN', 'DOKA SS','SXNE' 'KERIN FH','YORK GY','SXNP']

看起来像下面的列表

list = ['VOD LN Equity','HSBA LN Equity', 'DOKA SS Equity','SFNE Index' 'KERIN FH Equity','YORK GY','SXKP Index']

你知道我怎么做吗?你知道吗

谢谢!你知道吗


Tags: 字符串列表index字符sslistgyln
3条回答

似乎它可以帮助你:

items = ['VOD LN','HSBA LN', 'DOKA SS','SXNE' 'KERIN FH','YORK GY','SXNP']

def update(item: str) -> str:
    if len(item) > 3 and item[-3] == ' ':
        return item + ' Equity'
    return item + ' Index'

updated_items = [
    update(item) for item in items
]

单线解决方案

words = ['VOD LN', 'HSBA LN', 'DOKA SS', 'SXNE' 'KERIN FH', 'YORK GY', 'SXNP']
words = [f'{word} Equity' if word[-3] == ' ' else f'{word} Index' for word in words]
print(words) # ['VOD LN Equity', 'HSBA LN Equity', 'DOKA SS Equity', 'SXNEKERIN FH Equity', 'YORK GY Equity', 'SXNP Index']

如果您使用的是比3.6更早的Python版本

words = [word + ' Equity' if word[-3] == ' ' else word + ' Index' for word in words]

*不要使用list作为变量名,它是一个内置类型。你知道吗

可以使用包含conditional expressionlist comprehension来实现这一点。你知道吗

>>> input_list = ['VOD LN','HSBA LN', 'DOKA SS','SXNE', 'KERIN FH','YORK GY','SXNP']
>>> result = [x + (' Equity' if len(x)>=3 and x[-3]==' ' else ' Index') for x in input_list]
>>> result
['VOD LN Equity', 'HSBA LN Equity', 'DOKA SS Equity', 'SXNE Index', 'KERIN FH Equity', 'YORK GY Equity', 'SXNP Index']

您还可以使用各种字符串格式化操作,但由于您只是为每个项连接两个字符串,+工作正常。你知道吗

相关问题 更多 >

    热门问题