在python中组合行遵循某些条件

时间:2018-06-06 12:27:13

标签: python

我有一些列表:

a=['abc','123','def','ghi','456','jkl','789','mno','pqr']

如果元素是数字,我想组合列表的元素,即它包含0-9
喜欢:

b=['abc 123','def','ghi 456','jkl 789','mno','pqr']

怎么做?我有一个解决方案,如果数字元素是作为数字给出的(如int),但在这里它们是stings.Please help

假设a=['abc',123,'def','ghi',456,'jkl',789,'mno','pqr'] 然后我们可以做到:

t=[]
for i in a:
    if isinstance(i, int):
        t[-1] = "{0} {1}".format(t[-1], i)
    else:
        t.append(i)
print(t)

然后输出将是:

t=['abc 123','def','ghi 456','jkl 789','mno','pqr']

如何为a=['abc','123','def','ghi','456','jkl','789','mno','pqr']

执行此操作

注意:如果第一个元素是数字,那么它应该保持不变。 此外,我有一个列表,连续行中没有两个数字元素。

1 个答案:

答案 0 :(得分:0)

a=['abc','123','def','ghi','456','jkl','789','mno','pqr']

new_lst = []
for x in a:
    if x.isdigit():
        new_lst[-1] += ' {}'.format(x)
    else:
        new_lst.append(x)
print(new_lst)

<强>输出

['abc 123', 'def', 'ghi 456', 'jkl 789', 'mno', 'pqr']
相关问题