如何从字符串列表中的每个字符串中删除最后一个字符

2024-09-28 23:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在列表中有字符串“80010”、“80030”、“80050”,如

test = ['80010','80030','80050']

如何删除最后一个字符(在本例中是每个字符串的最后一个数字,即0),这样我就可以得到另一个列表,其中只包含每个字符串的前四个数字/字符?所以最后会有这样的结果

newtest = ['8001', '8003', '8005']

我对Python很陌生,但我尝试过if-else语句、追加、使用索引[:-1]等,但除非最终删除所有其他零,否则一切都不起作用。非常感谢!


Tags: 字符串test列表if数字语句字符else
3条回答
test = ["80010","80030","80050"]
newtest = [x[:-1] for x in test]

新测试将包含结果["8001","8003","8005"]

[x[:-1] for x in test]通过在test中的每个项上循环并将修改后的版本放入newtest中,创建一个新列表(使用列表理解)。x[:-1]意味着将字符串值x中的所有内容都取到最后一个元素,但不包括最后一个元素。

只是为了展示一个与理解稍有不同的解决方案,考虑到其他答案已经解释了切片,我只需要介绍一下方法。

有地图功能。

test = ['80010','80030','80050']
print map(lambda x: x[:-1],test)
# ['8001', '8003', '8005']

有关此解决方案的详细信息,请阅读我在另一个类似问题中所做的简要解释。

Convert a list into a sequence of string triples

你离这儿不远。使用切片符号[:-1]是正确的方法。把它和列表理解结合起来:

>>> test = ['80010','80030','80050']
>>> [x[:-1] for x in test]
['8001', '8003', '8005']

somestring[:-1]提供从位置0处的字符(包含)到最后一个字符(排除)的所有内容。

相关问题 更多 >