Python 删除一系列字符串的最后一个字符
假设我有数千种颜色:Python 删除一系列字符串的最后一个字符,python,string,Python,String,假设我有数千种颜色: x=[blue, red, green,...] 如何删除每个字符串的最后一个字符,使x1为[blu,re,gree,…] 我试过这个: x1=[] for i in range (0,len(x)): x1[i]=x[i:-1] 我得到的错误是:列表分配索引超出范围 你知道怎么做吗?你得到了错误,因为x1是一个空列表。第一次迭代尝试将x1[0]分配给不存在的索引器 假设x是一个字符串列表,一种更具python风格的方法是根本不使用任何索引: x1 = [col
x=[blue, red, green,...]
如何删除每个字符串的最后一个字符,使x1为[blu,re,gree,…]
我试过这个:
x1=[]
for i in range (0,len(x)):
x1[i]=x[i:-1]
我得到的错误是:列表分配索引超出范围
你知道怎么做吗?你得到了错误,因为
x1
是一个空列表。第一次迭代尝试将x1[0]
分配给不存在的索引器
假设x
是一个字符串列表,一种更具python风格的方法是根本不使用任何索引:
x1 = [color[:-1] for color in x]
您收到错误是因为x1
是一个空列表。第一次迭代尝试将x1[0]
分配给不存在的索引器
假设x
是一个字符串列表,一种更具python风格的方法是根本不使用任何索引:
x1 = [color[:-1] for color in x]
如果x
是字符串列表,则x[i]
是字符串。如果您只需要该字符串的最后一个字符,那么它就是x[i][:-1]
这样你就可以写作了
x1 = []
for i in range(0, len(x)):
x1.append(x[i][:-1])
或者你可以把它缩短为
x1 = [colour[:-1] for colour in x]
如果x
是字符串列表,则x[i]
是字符串。如果您只需要该字符串的最后一个字符,那么它就是x[i][:-1]
这样你就可以写作了
x1 = []
for i in range(0, len(x)):
x1.append(x[i][:-1])
或者你可以把它缩短为
x1 = [colour[:-1] for colour in x]
列表理解是解决问题的最佳方法:
x = ['blue', 'red', 'green']
new_x = [color[:-1] for color in x]
但您也可以使用map
功能实现此结果:
x = ['blue', 'red', 'green']
new_x = list(map(lambda color: color[:-1], x))
我不确定哪种方法在性能上更好,但因为没有人提到map
,所以…列表理解是解决问题的最佳方法:
x = ['blue', 'red', 'green']
new_x = [color[:-1] for color in x]
但您也可以使用map
功能实现此结果:
x = ['blue', 'red', 'green']
new_x = list(map(lambda color: color[:-1], x))
我不确定哪种方法在性能上更好,但是因为没有人提到map
,所以…您之所以会因为这个原因出错
因此,您需要使用.append来实现此操作。由于此原因而导致错误的原因
因此,您需要使用.append来实现此功能。列表理解不应使用任意字母;在可能的情况下,他们应该使用有意义的标识符。第一件事给了我同样的错误,第二件事起作用。列表理解不应该使用任意字母;在可能的情况下,他们应该使用有意义的标识符。第一件事给了我同样的错误,第二件事起作用。你需要这个到位还是需要一个新的数组?你需要这个到位还是需要一个新的数组?