在Python中,如何根据用户输入的数字创建列表?

时间:2016-04-18 13:12:24

标签: python list

我想根据用户输入在Python中创建一个经典的纸牌游戏。我想问他们> players = int(input('How many players are playing? 2-4 '))

并且取决于他们是否说2。

players = [[], []] will be created

但如果他们说3

then players = [[], [], []] would be created

到目前为止我所能做的只是玩家[[],[],[],[]]这意味着4名玩家必须经常玩游戏?

4 个答案:

答案 0 :(得分:1)

你可以,

n = input("number: ")    # n = 2 say
out = [list() for i in range(n)] # [[], []]

看看它是否适合你。

答案 1 :(得分:1)

你可以做这样的事情

players = [ [] for x in range(int(input('How many players are playing? 2-4 ')))]

<击>     players = int(input('How many players are playing? 2-4 '))
    players = [[]] * players

答案 2 :(得分:1)

您可以使用列表理解:

players = [[] for i in range(int(input('How many players are playing? 2-4 ')))]

输出:

>>> players = [[] for i in range(int(input('How many players are playing? 2-4 ')))]
How many players are playing? 2-4 3
>>> players
[[], [], []]

或者您可以使用*运算符:

players = [[]] * int(input('How many players are playing? 2-4 '))

但是,在使用第二种方法时更改列表中的元素会导致每个子列表也发生变化。所以对你来说列表理解方法会更好。

E.g:

>>> players = [[]] * int(input('How many players are playing? 2-4 '))
How many players are playing? 2-4 3
>>> players
[[], [], []]
>>> players[1].append("hello")
>>> players
[['hello'], ['hello'], ['hello']]

答案 3 :(得分:0)

请说:

vectorPlayers = []

players = int(input("'How many players are playing? 2-4 '"))

for x in range(players):
    vectorPlayers.append([])


print(vectorPlayers)

这将创建一个在每个位置都带有空向量的向量