python:两个列表创建

时间:2017-08-10 02:06:26

标签: 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 = int(raw_input("Enter your values"))
    k2.append(b)

4 个答案:

答案 0 :(得分:1)

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

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

下一步是学习使用异常处理无效输入。

答案 1 :(得分:0)

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

例如:

mylist = raw_input().split()

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

mylist = map(int, raw_input().split())[:5]

请注意,如果您使用的是Python 3.x,则需要将地图包裹在list()周围。

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

答案 2 :(得分:0)

列表理解:

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()

添加了例外。你可能不太想在那里使用KeyboardInterrupt,但如果你想阻止他们逃脱循环,直到他们给你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]

答案 3 :(得分:0)

输入:1 4 5 6 6 7 空格分开

然后

data = map(int, raw_input().split())

如果你的 输入:1

2

4

5

每一行都有你的数量。

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

如果进入单个列表,最好给出空格分隔的输入。