python:创建两个列表

python:创建两个列表,python,list,Python,List,我是Python新手,我正在尝试创建两个列表,从用户那里获取输入。目前,我有一些工作代码,但我相信它仍然可以得到增强,可以在更短的时间内完成 k1 = [] print("For 1st list enter") for i in range(5): a = int(raw_input("Enter your value")) k1.append(a) k2 = [] print("For second list enter") for j in range(5): b

我是Python新手,我正在尝试创建两个列表,从用户那里获取输入。目前,我有一些工作代码,但我相信它仍然可以得到增强,可以在更短的时间内完成

k1 = []
print("For 1st list enter")
for i in range(5):
    a = int(raw_input("Enter your value"))
    k1.append(a)

k2 = []
print("For second list enter")
for j in range(5):
    b = int(raw_input("Enter your values"))
    k2.append(b)

您可以提示用户输入以空格分隔的令牌字符串,然后将该字符串拆分为这些令牌的列表

例如:

mylist=原始输入。拆分

由于您似乎对最多五个整数标记感兴趣,我们应该将拆分的字符串标记转换为整数,并用一个切片截断列表:

mylist=mapint,原始输入。拆分[:5]

请注意,如果您使用的是Python3.x,则需要将映射包装在一个列表周围


此外-您可能会发现社区更适合回答与您类似的问题。

如果您想让用户一次输入一个数字,列表理解可以让您非常简洁地写下以下内容:

list_of_lists = []
for i in range(2):
    print ('For list {} enter: '.format(i+1))
    list_of_lists.append([int(raw_input("Enter your value")) for query in range(5)])
样本结果:

[[0, 5, 3, 5, 3], [4, 5, 6, 4, 3]]
下一步是学习使用异常处理无效输入。

列出理解:

In [283]: [int(raw_input("Enter your values")) for i in range(5)]
Enter your values1
Enter your values2
Enter your values3
Enter your values4
Enter your values5
Out[283]: [1, 2, 3, 4, 5]
当然,这假设您的所有输入都是有效的

否则类似于:

def get_int():
    try:
        return int(raw_input("Enter a number: "))
    except (KeyboardInterrupt, ValueError):
        return get_int()
增加了例外情况。你可能真的不想让键盘在那里中断,但是如果你想阻止他们跳出循环,直到他们给你10个数字

In [291]: [get_int() for i in range(10)]
Enter a number: 1
Enter a number: 2
Enter a number: a
Enter a number: 2
Enter a number: 3
Enter a number: 4
Enter a number: 56
Enter a number: 7
Enter a number: 8
Enter a number: 3
Enter a number: a
Enter a number: f
Enter a number: g
Enter a number: dfd
Enter a number: df
Enter a number: df
Enter a number: df
Enter a number: df
Enter a number: a
Enter a number: 9
Out[291]: [1, 2, 2, 3, 4, 56, 7, 8, 3, 9]
输入:1 4 5 6 7 分隔空间

然后

如果你的 输入:1

二,

四,

五,

在每一行中,你必须有一个计数

count = 5
data = [ int(input()) for i in range(count)]

如果输入到单个列表中,最好使用空格分隔的输入。

这个问题不是关于如何解决问题,而是关于如何改进代码。。。这里有一个堆栈交换论坛:虽然细微差别很微妙。我几乎添加了例外,但我觉得没人在乎。显然我错了:
count = 5
data = [ int(input()) for i in range(count)]