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



我正在尝试将文本文件中的一行转换为列表。测试文件的内容为:

1 2 3 4 f g

我已经把内容读入了一个列表lst=['1','2','3','4','f','g']。我想删除"f"one_answers"g"(或它们可能是的任何字符(,并将所有剩余的元素转换为int类型。我怎样才能做到这一点?

与其删除,不如构建一个列表。当项附加到列表中时,Python的效率更高。在这里,我们尝试将i转换为int-如果它是可转换的,那么它读取为某个以10为基数的数字,可能带有+或-号。如果它不匹配,那么int(i)将抛出一个ValueError异常,我们忽略它。那些正确转换的值将被附加到新的result列表中。

result = []
for i in elements:
try:
result.append(int(i))
except ValueError:
pass

这是理解列表的好时机。仅当isnumeric((时转换为int

arr = [int(x) for x in arr if x.isnumeric()]

尝试检查每个字符是否可以转换为一个字符:

arr = ['1', '2', '3', '4', 'f', 'g']
for c, char in enuemrate(arr[:]):
try: 
arr[c] = int(char)
except ValueError:
del arr[c]
print(arr)

您可以使用内置的Python方法isalpha((。如果字符串中的所有字符都是字母,则该方法返回"True",否则返回"False"。我假设您的列表中没有字母数字元素,并且您的列表包含数字或字母。你可以试试这样的东西:

elements = [1, 2, 3, 4, 'f', 'g']
for element in elements:
if element.isalpha():
elements.remove(element) #Removing the alphabets
#Converting the remaining elements to int
elements = [ int(x) for x in elements ]

最新更新