8个月前关闭。Improve this question已解决,不便之处敬请谅解。
8wtpewkr1#
去除前两个字符和最后一个字符:
vals = ["ab1c", "ef2g", "hi3j"] out = [val[2:-1] for val in vals]
给出:
['1', '2', '3']
如果您还希望使用int(您要求[1, 2, 3]作为结果),则:
[1, 2, 3]
out = [int(val[2:-1]) for val in vals]
v64noz0r2#
使用re.sub从字符串中删除前两个字符和最后一个字符。其中,.是任意字符,.*是任意重复0次或多次的字符,\\1是第一个捕获组,即括号内匹配的任何内容。
re.sub
.
.*
\\1
import re lst = ["ab1c", "ef2g", "hi3j"] lst = [int(re.sub(r'..(.*).', '\\1', s)) for s in lst] print(lst) # [1, 2, 3]
rqcrx0a63#
你可以尝试使用python中的.strip()方法,这个方法可以独立于每个字符串中数字的前后有多少个字符。
.strip()
import string list = ["ab1c", "ef2g", "hi3j"] list = [word.strip(string.ascii_letters) for word in list]
8hhllhi24#
如果要删除的字符数与原始帖子中的相同,则可以执行以下操作:
list = ["ab1c", "ef2g", "hi3j"] for i in range(len(list)): list[i]=int(list[i][2]) # list = [1, 2, 3]
4条答案
按热度按时间8wtpewkr1#
去除前两个字符和最后一个字符:
给出:
如果您还希望使用int(您要求
[1, 2, 3]
作为结果),则:v64noz0r2#
使用
re.sub
从字符串中删除前两个字符和最后一个字符。其中,.
是任意字符,.*
是任意重复0次或多次的字符,\\1
是第一个捕获组,即括号内匹配的任何内容。rqcrx0a63#
你可以尝试使用python中的
.strip()
方法,这个方法可以独立于每个字符串中数字的前后有多少个字符。8hhllhi24#
如果要删除的字符数与原始帖子中的相同,则可以执行以下操作: