我正在尝试将文本文件中的一行转换为列表。测试文件的内容为:
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 ]