我有一个看起来像这样的字符串:
1 | xxx | xxx | xxx | yyy*a*b*c | xxx
我想扩展yyy*a*b*c
部分,以便字符串看起来像这样:
1 | xxx | xxx | xxx | yyya | yyyb | yyyc | xxx
我实际上有一个大文件,在这些字符串之间有分隔符。 我已将文件解析为一个如下所示的字典:
{'1': ['xxx' , 'xxx', 'xxx', 'yyy*a*b*c', 'xxx' ], '2': ['xxx*d*e*f', ..., 'zzz'], etc}
我需要将yyy*a*b*c
和xxx*d*e*f
部分替换为列表中的其他项目。
我如何在python 3中执行此操作?在将其解析为字典或将其解析为字典(以及如何)之后,我是否应该扩展字符串中的所有内容?
答案 0 :(得分:1)
您可以使用拆分和简单列表理解来完成此操作:
{{1}}
答案 1 :(得分:1)
你应该在解析文件中的数据时这样做,只需在添加到列表时通过这个函数传递每个参数,添加到@tuananh答案: -
<amqp:connector name="amqpConnector"
host="${myApp.status_reporting.host}"
port="${myApp.status_reporting.port}"
username="${myApp.status_reporting.username}"
password="${myApp.status_reporting.password}"
requestedHeartbeat="${myApp.status_reporting.requestedHeartbeat}"
doc:name="AMQP Connector for Status Messages"/>
<flow name="cwm_send" doc:name="cwm_send">
<amqp:outbound-endpoint
exchangeName="${myApp.status_reporting.exchange_name}"
exchangeType="topic"
exchangeDurable="${myApp.status_reporting.exchange_is_durable}"
routingKey="${myApp.status_reporting.routing_key}"
connector-ref="amqpConnector"
doc:name="AMQP Out"
queueDurable="true"
responseTimeout="10000"
/>
</flow>
答案 2 :(得分:0)
process
将列入如下列表:
['xxx', 'xxx', 'yyy*a*b*c', 'xxx*d*e*f']
并使用扩展的正确术语返回完整列表:
def expand(s):
"""
expand('yyy*a*b*c') --> ['yyya', 'yyyb', 'yyyc']
expand('xxx') --> ['xxx']
"""
if "*" not in s:
return s
base, suffixes = s.split("*")
return [base + suffix for suffix in suffixes]
def process(strings):
result = []
for s in strings:
result.extend(s)
return result