微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅当使用列表理解完全匹配时才替换 python 列表

如何解决仅当使用列表理解完全匹配时才替换 python 列表

我有以下列表:-

list= ['order','orderNumber']

我想用双引号将 order 括起来,而不是 orderNumber 我在列表理解中尝试了以下内容

if 'order' in list:
     list = [item.replace('order','"' + 'order' + '"') for item in list]

输出是:- orderNumber 中的订单也用双引号括起来,这是不需要的

['"订单"','"订单"号码']

预期输出是:-

['"订单"','订单号']

解决方法

您应该使用 == 运算符而不是 in 作为:

lst = ['order','orderNumber']
lst = [f'"{elt}"' if elt == 'order' else elt for elt in lst]
print(lst)

另外,不要使用 list 作为对象名称。


更新:对不支持 + 的低于 3.6 的 Python 版本使用连接运算符 fstrings

lst = ['order','orderNumber']
lst = ['"{}"'.format(elt) if elt == 'order' else elt for elt in lst]
print(lst)
,

您可以使用 regular expressionre.sub

>>> import re
>>> lst = ['order','orderNumber']
>>> [re.sub('^order$','"order"',item) for item in lst]
>>> ['"order"','orderNumber']
,

请您检查以下是否适合您

lista = ['order','orderNumber']
listb = []
if 'order' in lista:
    for item in lista:
        if item == 'order':
            listb.append(item.replace('order','"' + 'order' + '"'))
        else:
            listb.append(item)
lista = listb

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?