将特定值的元素与列表中的相邻元素合并
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
但什么都不做。然后,如果元素不是-
而neg
是True
然后追加元素的负数并将标志设置为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'-'
。
以上是关于将特定值的元素与列表中的相邻元素合并的主要内容,如果未能解决你的问题,请参考以下文章
XPath/HtmlAgilityPack:如何查找具有属性 (href) 特定值的元素 (a) 并查找相邻的表列?