将特定值的元素与列表中的相邻元素合并

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将特定值的元素与列表中的相邻元素合并相关的知识,希望对你有一定的参考价值。

我正在尝试将列表中的某些元素组合在一起,如果它们具有与其更紧密相邻的元素的特定值。 (在这种情况下,具体值是减号)。 说我有以下列表:

x = ['0', '0', '8', '-', '6', '4', '0', '5', '1', '2', '1', '2', '-', '5']  

我可以对列表做什么,以便它看起来像这样?:

x = ['0', '0', '8', '-6', '4', '0', '5', '1', '2', '1', '2', '-5'] 

我基本上需要元素' - '的每个实例与下一个元素(其中索引是减号索引的+1)配对。对不起,如果这是非常模糊的,我仍然是python的新手,因此我的术语可能缺乏。

答案
neg = False
out = []
for i in x:
    if i == '-':
        neg = True
    else:
        if neg:
            out += ['-' + i]
            neg = False
        else:
            out += [i]


In [18]: out
Out[18]: ['0', '0', '8', '-6', '4', '0', '5', '1', '2', '1', '2', '-5']

在上面的代码中,有一个标志neg,表示前一项是否为减号(True表示它是一个减号)。然后我们使用x中的元素填充out列表,规则是如果你有-然后将标志设置为True但什么都不做。然后,如果元素不是-negTrue然后追加元素的负数并将标志设置为False,但如果标志是False,则只需附加元素。

另一答案

试试这个:

x = ['0', '0', '8', '-', '6', '4', '0', '5', '1', '2', '1', '2', '-', '5']

for i in range(len(x)):
    if x[i] == '-':
        x[i+1] = x[i] + x[i+1]

y = [i for i in x if i != '-']
print(y)

它合并元素,然后从列表中删除所有减号sign'-'

以上是关于将特定值的元素与列表中的相邻元素合并的主要内容,如果未能解决你的问题,请参考以下文章

twoday

13 个非常有用的 Python 代码片段

XPath/HtmlAgilityPack:如何查找具有属性 (href) 特定值的元素 (a) 并查找相邻的表列?

不能只删除链接列表中的最后一个元素! (所有其他具有特定值的元素都会被删除)

按元素名称组合/合并列表(列表中的列表)

如何将列表与常见元素合并,这些元素本身就是列表/元组?