如何从列表中的每个元素中删除字符

时间:2018-06-15 18:12:28

标签: python list

我想删除列表中每个元素(当前是int)的前两个字符。这就是我所拥有的:

lst = [2011,2012,3013]

我想得到这个

lst= [11,12,13]

我不想要某种替代20或30的解决方案。

4 个答案:

答案 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