英文:
Remove first 5 from numbers in a list?
问题
我有一个包含如下数字的列表:-
s = [5542, 5654, 7545]
目标是从数字中移除开头的5,使得最终的列表如下:
s = [542, 654, 745]
在不使用任何外部库的情况下,实现以下目标的最佳方法是什么?
英文:
I have a list with numbers like this :-
s = [5542, 5654, 7545]
The goal is to remove the first 5 from the number such that the resultant list is like this
s = [542, 654, 745]
What's the best way to achieve the following without using any external libraries?
答案1
得分: 0
尝试使用 str.replace(old, new, count)
-
[int(str(i).replace('5', '', 1)) for i in s]
[542, 654, 745]
在这种情况下,str.replace(old, new, count)
有3个参数,其中将 count
设置为1将只替换字符串中找到的第一个5。
然后你可以将它转换回整数。
英文:
Try this with str.replace(old, new, count)
-
[int(str(i).replace('5','',1)) for i in s]
[542, 654, 745]
The str.replace(old, new, count)
in this case has 3 parameters, where the count
set to 1 will only replace the first instance of 5 it finds in the string.
Then you can convert it back to an integer.
答案2
得分: 0
另一个解决方案:
s = [int(str(x)[:str(x).index("5")] + str(x)[str(x).index("5") + 1:]) for x in s]
英文:
Another solution:
s = [int(str(x)[:str(x).index("5")] + str(x)[str(x).index("5") + 1:]) for x in s]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论