如何遍历列表中的元素,在一行中打印相同的元素,在其他行中打印不同的元素等等?
How to iterate through elements in a list, print same elements in one line, and print different elements on other lines and so on?
我一直在研究一些竞赛样题,目前卡在其中一个上。这叫做时间解压缩,两个朋友找到了一种可以互相发送加密代码的方法。
下面的函数要求用户输入 L,这是要发送的代码数。对于 l 中的每一行,用户将被要求输入 N 个字符,N 是一个数字。我想出了一种将 N 转换为 for
循环范围的方法,该循环将遍历每个 L,为每个 L 找到 N,然后多次打印出一个字符 N。
问题是,它不是在同一行上打印,而是在每个 L 的新行上打印,而是在同一行上打印。
输入:
2
4, M
8,=
预期输出:
MMMM
========
我得到的:
MMMM========
def time_decompress():
l = int(input())
a_list = []
store_list = []
lastchar = [0]
for i in range(l):
b = input().split(" ")
a_list.append(b)
for item in a_list:
for i in range(int(item[0])):
print(item[1], end = "")
time_decompress()
感谢您的帮助。
在打印 item[1]
请求的次数后(在 for
循环内),您必须打印一个换行符。
for item in a_list:
for i in range(int(item[0])):
print(item[1], end = "")
print("")
另一种解决方案,不使用循环:
for item in a_list:
print(item[1]*int(item[0]))
这是可行的,因为在 python 中,将字符串乘以数字会重复该字符串多次。例如。 'a' * 5
结果为 aaaaa
。
我一直在研究一些竞赛样题,目前卡在其中一个上。这叫做时间解压缩,两个朋友找到了一种可以互相发送加密代码的方法。
下面的函数要求用户输入 L,这是要发送的代码数。对于 l 中的每一行,用户将被要求输入 N 个字符,N 是一个数字。我想出了一种将 N 转换为 for
循环范围的方法,该循环将遍历每个 L,为每个 L 找到 N,然后多次打印出一个字符 N。
问题是,它不是在同一行上打印,而是在每个 L 的新行上打印,而是在同一行上打印。
输入:
2
4, M
8,=
预期输出:
MMMM
========
我得到的:
MMMM========
def time_decompress():
l = int(input())
a_list = []
store_list = []
lastchar = [0]
for i in range(l):
b = input().split(" ")
a_list.append(b)
for item in a_list:
for i in range(int(item[0])):
print(item[1], end = "")
time_decompress()
感谢您的帮助。
在打印 item[1]
请求的次数后(在 for
循环内),您必须打印一个换行符。
for item in a_list:
for i in range(int(item[0])):
print(item[1], end = "")
print("")
另一种解决方案,不使用循环:
for item in a_list:
print(item[1]*int(item[0]))
这是可行的,因为在 python 中,将字符串乘以数字会重复该字符串多次。例如。 'a' * 5
结果为 aaaaa
。