我想删除按顺序分隔的第一个单词后面的额外单词“;”在每一行上只返回该序列的一个副本:
数据:
XTY1;XTY3;XTY3;XTY3;XTY2;XTY1;XTY1;XTY1
XTY3;XTY4;XTY4;XTY3;XTY2;XTY7;XTY7;XTY1
XTY10;XTY3;XTY4;XTY2;XTY2;XTY11;XTY11;XTY1
必需的输出:
XTY1;XTY3;XTY2;XTY1
XTY3;XTY4;XTY3;XTY2;XTY7;XTY1
XTY10;XTY3;XTY4;XTY2;XTY11
我的代码如下:
for line in cluster3_urls:
list_of_words = line.split(',')
for i in list_of_words:
next_word = list_of_words[list_of_words.index(i) + 1]
if list_of_words == next_word:
list_of_words=list_of_words
print list_of_words
有人可以告诉我为什么我的代码不起作用吗?
答案 0 :(得分:3)
您的代码有很多问题。考虑workflow New-AutomationVM
{
workflow Pre-DeploymentChecks
{
function Check-IP
{ return $true }
function Check-Name
{ return $true }
function Check-Role
{ return $false }
$CheckResults = parallel {
sequence {
Check-IP
Check-Name
}
Check-Role
}
($CheckResults |Where-Object {-not $_}) -le 1
}
workflow Deploy
{
Pre-DeploymentChecks
}
Deploy
}
New-AutomationVM
:
itertools.groupby
答案 1 :(得分:2)
我认为问题在于您是基于逗号而不是分号进行吐痰 尝试将行更改为
list_of_words = line.split(';')
答案 2 :(得分:0)
您的代码现在失败了,因为您正在拆分错误的分隔符。此外,一旦您解决了这个问题,当您到达最后一个单词时,您的代码将在from itertools import groupby
input = 'XTYYY1;XTYYY3;XTYYY3;XTYYY3;XTYYY2;XTYYY1;XTYYY1;XTYYY1'
output = ';'.join([k for k, g in groupby(input.split(';'))])
# output: 'XTYYY1;XTYYY3;XTYYY2;XTYYY1'
上失败。你的其余代码没有任何意义,你的if语句将数组与该数组的元素进行比较,然后将该箭头设置为自身(什么都不做)。我建议你完全重写你的代码。