Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当省略字符串中的任何非数字字符时,为什么这些字母会保留下来?_Python_List - Fatal编程技术网

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']:

所以我在测试不同的方法,从字符串中删除Python中非数字的任何字符

当使用下面这个特殊的方法时,我发现在使用这个方法之后,拉丁字母表中的一些字符仍然存在:

代码

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将数字转换为列表,看看是否有效。否则再问

您正在从正在迭代的序列中删除元素:不要这样做!我还想指出的是,仅仅检查一个字符是否是一个数字要容易得多。您正在从正在迭代的序列中删除元素:不要这样做!我还想指出,仅仅检查一个字符是否是一个数字会容易得多。