更改列表中的项目时发生Python错误...请参见下面的示例[已关闭]

unftdfkk  于 2023-01-29  发布在  Python
关注(0)|答案(4)|浏览(87)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

8个月前关闭。
Improve this question
已解决,不便之处敬请谅解。

8wtpewkr

8wtpewkr1#

去除前两个字符和最后一个字符:

vals = ["ab1c", "ef2g", "hi3j"]

out = [val[2:-1] for val in vals]

给出:

['1', '2', '3']

如果您还希望使用int(您要求[1, 2, 3]作为结果),则:

out = [int(val[2:-1]) for val in vals]
v64noz0r

v64noz0r2#

使用re.sub从字符串中删除前两个字符和最后一个字符。其中,.是任意字符,.*是任意重复0次或多次的字符,\\1是第一个捕获组,即括号内匹配的任何内容。

import re
lst = ["ab1c", "ef2g", "hi3j"]
lst = [int(re.sub(r'..(.*).', '\\1', s)) for s in lst]
print(lst)
# [1, 2, 3]
rqcrx0a6

rqcrx0a63#

你可以尝试使用python中的.strip()方法,这个方法可以独立于每个字符串中数字的前后有多少个字符。

import string

list = ["ab1c", "ef2g", "hi3j"]
list = [word.strip(string.ascii_letters) for word in list]
8hhllhi2

8hhllhi24#

如果要删除的字符数与原始帖子中的相同,则可以执行以下操作:

list = ["ab1c", "ef2g", "hi3j"]
for i in range(len(list)):
    list[i]=int(list[i][2])
# list = [1, 2, 3]

相关问题