我想删除列表中每个元素(当前是int)的前两个字符。这就是我所拥有的:
lst = [2011,2012,3013]
我想得到这个
lst= [11,12,13]
我不想要某种替代20或30的解决方案。
答案 0 :(得分:3)
鉴于source= [2011,-2012,-3013]
:
dest = [abs(x)%100 for x in source]
dest = [(abs(x)%100)*(1 if x > 0 else -1) for x in source]
dest = list(map(lambda x : str(x)[-2:],source)
dest = list(map(lambda x : ("-" if str(x)[0]=="-" else "")+str(x)[-2:],source))
答案 1 :(得分:1)
您可以使用:
list = [abs(number)%100 for number in list]
名单列表是一个不好的做法。使用其他名称。
答案 2 :(得分:1)
您可以使用100的模块,例如:
my_list= [2011,2012,3013]
expected_list = [i%100 for i in my_list]
如果my_list
中有负数:
expected_list=[abs(i)%100 for i in my_list]
或者使用字符串切片:
expected_list = [int(str(i)[2:]) for i in my_list] #[2:],because you want to remove first two numbers
请尝试避免使用保留关键字作为变量名称,因为您已使用list
作为变量名称。
答案 3 :(得分:0)
模:
只需使用100个
模块化每个元素list= [2011,2012,3013]
for i in range(len(list)):
list[i] %= 100