我有一张包含以下内容的表:
table = [[2, 1],[5, 2],[6, 4],[4, 5],[1, 3],[3, 6]]
我想要做的是在用户提供的表格中打印一定次数的元素。
例如,
userinput = 1
然后它应该只从表格中打印一个元素,从左到右只是:
[2,1]
用户输入也是如此,例如:
userinput = 4
它应该打印:
[2, 1],[5, 2],[6, 4],[4, 5]
这是我的尝试:
table = [[2, 1],[5, 2],[6, 4],[4, 5],[1, 3],[3, 6]]
n = len(arr)
user = int(input("Enter how many times to print: "))
for i in range(n):
for j in range(user):
print(table[j])
但我写的代码是打印出太多重复的值。
例如,如果
userinput = 1
我得到的输出是
[2,1]
[2,1]
[2,1]
[2,1]
.
.
这是错误的。
答案 0 :(得分:2)
这是一个解决方案。由于您指定的特定格式,str
转换和[1:-1]
切片才是必需的。
table = [[2, 1],[5, 2],[6, 4],[4, 5],[1, 3],[3, 6]]
user = int(input("Enter how many times to print: "))
print(str(table[:int(user)])[1:-1])
# Enter how many times to print: 3
# [2, 1],[5, 2],[6, 4]
答案 1 :(得分:1)
应该这样做,不需要len(table)
或for
循环
table = [[2, 1],[5, 2],[6, 4],[4, 5],[1, 3],[3, 6]]
user = int(input("Enter how many times to print: "))
print(table[:user])
示例:
user = 4
输出:
[[2, 1], [5, 2], [6, 4], [4, 5]]
你评论中的编辑:,似乎你想使用for循环来实现这一点。这可以这样做:
for i in range(user):
print(table[i])
返回:
[2, 1]
[5, 2]
[6, 4]
[4, 5]
如果您希望它在一行上打印:
for i in range(user):
print(table[i], end=' ')
if i == user - 1:
print()
返回:
[2, 1] [5, 2] [6, 4] [4, 5]