用一行代码在Python中创建整数列表

0 投票
5 回答
1812 浏览
提问于 2025-04-18 01:39
def entree_liste():
    liste_entier = []
    liste_nombre = int(input("Enter list of number separate by space :"))
    for chiffre in range(liste_nombre):
        liste_entier.append(chiffre)
    print(liste_entier)

还有我的错误

liste_nombre = int(input("Enter list of number separate by space :"))
ValueError: invalid literal for int() with base 10: '22 33 44 55'

简单来说,我是在让用户输入一个整数的列表。如果我用 liste_entier = list(liste_nombre) 这个方法的话,它会把空格也算作一个整数,但我只想要整数,不想要空格出现在我的列表里。

5 个回答

0
liste_entier = list(map(int, input("Enter list of number separate by space :").split()))

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

0

你应该先读取一个字符串,这个字符串里面是用空格分开的数字。然后把这个字符串拆开,把每个部分转换成整数。

input = raw_input("Enter list of number separate by space :")

input.split()

接着把这些元素转换成整数。

通常来说,先读取字符串再处理返回的结果是更安全的做法。

0

int()这个函数只能处理那些只包含数字的字符串。如果字符串里有空格,那就会出错。要解决这个问题,首先把这个字符串分割成一个个小字符串,然后再把每个小字符串转换成整数,如果可以的话。

 string = input('Enter list of space separated numbers: ')
 numbers = [int(n) for n in string.split() if n.isdigit()]
0

正如@Larry所说,这在Python中是一种合理的写法。

list_nombre = input("Enter list of numbers separated by space:")
list_of_ints = [int(s) for s in list_nombre.split()]

不过,问题在于你不能在列表推导式里面处理错误。如果想要处理错误,你可能需要写一个自己的、更强大或更有帮助的转换函数。

def convert_int(s):
    try:
        return int(s)
    except ValueError as e:
        print e
        return None

list_nombre = input("Enter list of numbers separated by space:")
list_of_ints = [convert_int(s) for s in list_nombre.split()]
3

函数 int() 可以把一个单一的数值转换成整数。但是如果你有一个很大的字符串,里面包含了很多整数值,该怎么办呢?解决这个问题的第一步是把这个大字符串拆分成一个小字符串的集合(在这里是一个列表),每个小字符串只包含一个整数,然后再分别把这些小字符串转换成整数。

要进行拆分操作,你可以使用Python的字符串方法 .split()。这个方法会返回一个字符串列表。然后你可以把这些字符串逐个转换成整数:

 # get list as string
 list_nombre = input("Enter list of numbers separated by space:")
 # create list of smaller strings, each with one integer-as-string
 list_of_int_strings = list_nombre.split(' ') 
 # convert list of strings to list of integers
 list_of_ints = []
 for int_string in list_of_int_strings:
      list_of_ints.append(int(int_string)

不过在Python中,我们可以更简洁地写成:

 list_nombre = input("Enter list of numbers separated by space:")

 list_of_ints = ([int(s) for s in list_nombre.split(' ')])

撰写回答