python - 如何使用反向组合迭代拆分字符串?
问题描述
我有一个看起来像这样的字符串列表:
['C04.123.123.123', 'C03.456.456.456', 'C05.789.789.789']
我正在尝试拆分每个字符串,以便在句点分隔符上获得不同的向后拆分组合。基本上,如果我只以第一个字符串为例,我想得到:
['C04.123.123.123', 'C04.123.123', 'C04.123', 'C04']
我怎样才能做到这一点?我试过研究 itertools.combinations 和标准拆分功能,但没有运气。
解决方案
您可以使用列表推导:
d = ['C04.123.123.123', 'C03.456.456.456', 'C05.789.789.789']
new_d = [a+('.' if i else '')+'.'.join(i) for a, *c in map(".".split, d)
for i in [c[:h] for h in range(len(c)+1)][::-1]]
输出:
['C04.123.123.123', 'C04.123.123', 'C04.123', 'C04', 'C03.456.456.456', 'C03.456.456', 'C03.456', 'C03', 'C05.789.789.789', 'C05.789.789', 'C05.789', 'C05']
推荐阅读
- java - 在 Node-RED/Watson IoT 中,我的 Java 设备客户端不断在连接和断开之间切换
- python - Python烧瓶请求
- javascript - 反应,正确更新复选框
- sql - 使用like运算符进行sql连接
- node.js - 如何替换文件(或多个文件)中的多行?
- javascript - PHP没有从XMLHttpRequest接收任何数据
- emulation - 如何使用 pubsub 模拟器 http API 创建订阅?
- javascript - JS - 将表单值插入 URL
- sql - 将空值添加到 bigint 范围 PostgreSQL
- java - 如何为私有 List<@Min(3) @Max(7) String> myList 编写 bytebuddy 代码