如何从Python中的raw_input创建列表?

13 投票
4 回答
66884 浏览
提问于 2025-04-18 02:27

我正在用 raw_input 来输入一个列表。

x= raw_input()

比如我输入了 1 2 3 4,如果我只输入数字的话,怎么把它转换成一个整数的列表呢?

4 个回答

1

下面是一些关于如何从用户输入中获取列表的例子和简单解释:

你可能经常需要一些代码来从控制台读取数据并放入一个列表中。你可以每次输入一条数据,然后在循环中把它添加到列表里。例如,下面的代码就是每次输入一个数字,读取十个数字并放入一个列表。

lst1 = [] # Create an empty list
print("Enter 10 Numbers: ")
for i in range(10):
   lst1.append(eval(input()))

print(lst1)

有时候,把数据放在一行里,用空格分开输入会更方便。你可以使用字符串的分割方法来从一行输入中提取数据。例如,下面的代码就是从一行中读取十个用空格分开的数字,并放入一个列表。

# Read numbers as a string from the console
s = input("Enter 10 numbers separated by spaces from one line: ")
items = s.split() # Extract items from the string
lst2 = [eval(x) for x in items] # Convert items to numbers

print(lst2)

调用 input() 会读取一串字符串。使用 s.split() 可以从字符串 s 中提取用空格分开的项目,并把这些项目放入一个列表中。最后一行的代码通过把这些项目转换成数字,创建了一个数字列表。

3

你可以使用 eval 来做到以下这些:

lst = raw_input('Enter your list: ')
lst = eval(lst)
print lst

这段代码会这样运行:

>>> lst = raw_input('Enter your list: ')
Enter your list: [1, 5, 2, 4]
>>> lst = eval(lst)
>>> print lst
[1, 5, 2, 4]
>>> 
10

这行代码 list = map(int,raw_input().split()) 的意思是,我们在用一个叫 map 的函数来生成一个整数的列表。

具体来说,raw_input() 是用来获取用户输入的内容,然后 split() 会把这些内容分开,变成一个个小块。接着,map(int, ...) 就会把这些小块都转换成整数,最后把它们放到一个列表里。

23

像这样:

string_input = raw_input()
input_list = string_input.split() #splits the input string on spaces
# process string elements in the list and make them integers
input_list = [int(a) for a in input_list] 

撰写回答