下面的函数按我想要的方式工作,但是如果参数在列表中包含空白字符串,它不会像我希望的那样进行索引。
def number(lines):
return ['{0}: '.format(lines.index(i) +1) + i for i in lines]
print(number(["a", "b", "c"]))
返回:
["1: a", "2: b", "3: c"]
正是我希望它如何返回列表
但是,如果函数的参数包含空白字符串,例如:
print(number(["a", "", ""]))
返回:
["1: a", "2: ", "2: "]
有人可以解释为什么会发生这种情况,以及如何纠正它,无论列表元素是否为空,都始终从一开始计数
最佳答案
index
方法为您提供列表中出现空格的第一个索引。这不仅限于空字符串,还包括在列表中出现两次的任何字符/字符串。使用 enumerate
来代替计数变量。
def number(lines):
return ['{0}: {1}'.format(i+1, j) for i, j in enumerate(lines)]
关于python - 索引空字符串python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001250/