Python 当省略字符串中的任何非数字字符时,为什么这些字母会保留下来?
所以我在测试不同的方法,从字符串中删除Python中非数字的任何字符 当使用下面这个特殊的方法时,我发现在使用这个方法之后,拉丁字母表中的一些字符仍然存在: 代码Python 当省略字符串中的任何非数字字符时,为什么这些字母会保留下来?,python,list,Python,List,所以我在测试不同的方法,从字符串中删除Python中非数字的任何字符 当使用下面这个特殊的方法时,我发现在使用这个方法之后,拉丁字母表中的一些字符仍然存在: 代码 def get_lengths(): books = [] while True: book = input() for a in book: books.append(a) if book in ['stop', 'Stop']:
def get_lengths():
books = []
while True:
book = input()
for a in book:
books.append(a)
if book in ['stop', 'Stop']:
break
numbers = '0123456789'
characters = list(books)
print(characters)
for b in characters:
if b not in list(numbers):
del characters[characters.index(b)]
print(characters)
输入
144 Leaves of Grass
766 game of Thrones
stop
['1', '4', '4', ' ', 'L', 'e', 'a', 'v',
'e', 's', ' ', 'o', 'f', ' ', 'G', 'r',
'a', 's', 's', '7', '6', '6', ' ', 'g',
'a', 'm', 'e', ' ', 'o', 'f', ' ', 'T',
'h', 'r', 'o', 'n', 'e', 's', 's', 't',
'o', 'p']
['1', '4', '4', 'L', 'f', 'G', 'a', '7',
'6', '6', 'g', 'a', 'm', ' ', 'f', ' ',
'T', 'r', 'n', 'e', 's', 's', 't', 'p']
输出
144 Leaves of Grass
766 game of Thrones
stop
['1', '4', '4', ' ', 'L', 'e', 'a', 'v',
'e', 's', ' ', 'o', 'f', ' ', 'G', 'r',
'a', 's', 's', '7', '6', '6', ' ', 'g',
'a', 'm', 'e', ' ', 'o', 'f', ' ', 'T',
'h', 'r', 'o', 'n', 'e', 's', 's', 't',
'o', 'p']
['1', '4', '4', 'L', 'f', 'G', 'a', '7',
'6', '6', 'g', 'a', 'm', ' ', 'f', ' ',
'T', 'r', 'n', 'e', 's', 's', 't', 'p']
输出的前半部分是省略前的字符串。后半部分处理省略后的字符串,其中只应保留数字
所以我的问题是,当所有非数字字符都被编程从字符串中删除时,为什么拉丁字母表中的各种字符会保留下来
另外,我知道这是一种略去所有非数字字符的不切实际的方法,但是请记住,我正在测试几种不同的方法
另外,不要担心变量名,当我开始测试这些方法时,我正在从事另一个项目。这是因为ASCII比较。计算机除了0和1之外什么都不懂。Plzz将数字转换为列表,看看是否有效。否则再问 这是因为ASCII比较。计算机除了0和1之外什么都不懂。Plzz将数字转换为列表,看看是否有效。否则再问 您正在从正在迭代的序列中删除元素:不要这样做!我还想指出的是,仅仅检查一个字符是否是一个数字要容易得多。您正在从正在迭代的序列中删除元素:不要这样做!我还想指出,仅仅检查一个字符是否是一个数字会容易得多。