我有以下列表:
listEx = ['123','456','342','432']
我怎样才能得到不同的数字汇编?例如,对于列表 123
的第一项,编译应为:[1,2,3]
,[1,23]
, [12,3]
,[123]
可以使用以下命令完成第一个编译:
[int(listEx[0][0]),int(listEx[0][1]),int(listEx[0][2])]
[int(listEx[0][0]),int(listEx[0][1:])]
.
.
.
是否有更优雅、更动态的方式来做到这一点? 更具体地说,我如何创建以下内容:
[[[1,2,3],[4,5,6],[3,4,2],[4,3,2]],
[[1,23],[4,56],[3,42],[4,32]],
.
.
]
最佳答案
您可以使用列表理解来循环列表,可以使用索引来分割字符串并将逗号插入到字符串中,然后添加切片。要插入两个逗号,您可以使用 str.join()
方法:
>>> [[','.join(i)]+[str(i[:x]+','+i[x:]).strip(',') for x in range(3)] for i in listEx]
[['1,2,3', '123', '1,23', '12,3'], ['4,5,6', '456', '4,56', '45,6'], ['3,4,2', '342', '3,42', '34,2'], ['4,3,2', '432', '4,32', '43,2']]
关于Python:动态分割文本与数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34684405/