如何将以下代码重新排列为简化的列表理解?
for i in xrange(len(list)):
if list[i].startswith('c'):
list[i] = prefix + list[i]
我尝试了以下方法,但似乎没有用:
[prefix + list[i] for i in xrange(len(list)) if list[i].startswith('c')]
以下让我失望:
list[i] = prefix + list[i]
如何将以下代码重新排列为简化的列表理解?
for i in xrange(len(list)):
if list[i].startswith('c'):
list[i] = prefix + list[i]
我尝试了以下方法,但似乎没有用:
[prefix + list[i] for i in xrange(len(list)) if list[i].startswith('c')]
以下让我失望:
list[i] = prefix + list[i]
你需要在ternary operator这里使用:
[prefix + i if i.startswith('c') else i for i in my_list]
请注意,这不会更改原始my_list,它只是返回一个新列表。
您可以简单地将列表理解分配回my_list以实现:
my_list=[prefix + i if i.startswith('c') else i for i in my_list]
PS:不要list用作变量名