通过列表理解使片段更好



我想知道如果我有这个代码片段,其中行是字符串值,有没有办法通过列表理解使代码看起来更好?

row_output = list(row)        
for i in range(len(row_output))
if i % 2 == 0:
row_output[i] = '*'
row_output = ''.join(row_output)

您绝对可以使用列表推导来缩写任务。IIUC,您要做的是将奇数位置的值替换为"*",否则保留该值。我这样说是为了确保这是你想要的。我的建议是:

''.join(['*' if x % 2 == 0 else row_output[x] for x in range(len(row_output))])

在示例中:

row_output = ['Yes','Hello','No','Bye','What']
''.join(['*' if x % 2 == 0 else row_output[x] for x in range(len(row_output))])

输出:

*Hello*Bye*

使用enumerate来完成工作。

row = "This Question was asked on StackOverflow"
row_output = list(row)
row_output = "".join(
["*" if index % 2 == 0 else item for index, item in enumerate(row_output)]
)
print(row_output)

输出:

*h*s*Q*e*t*o* *a* *s*e* *n*S*a*k*v*r*l*w

最新更新