如果用数字n乘以一个序列会生成新的序列,而在新的序列中,原来的序列将被重复n次,就相当于复制粘贴一样。如果序列的值是None (Python语言内建的一个值,表示“什么都没有”),那么将这个序列与数字n相乘,假设这个包含None值的序列长度是1,那么就会产生占用n个元素空间的序列。
[例 4.22] 本例通过字符串与数字相乘,复制字符串;通过将序列与数字相乘,复制序列。
print("hello" * 3) #输出结果:hellohellohello print([20] * 5) #输出结果:[20, 20, 20, 20, 20] print([None] * 4) #输出结果:[None, None, None, None]输出结果:
hellohellohello [20, 20, 20, 20, 20] [None, None, None, None][例 4.23] 本例会利用序列的乘法生成一个6 * 11 的二维序列,序列的每一个元素是一个一维的序列,序列中的每一个元素是空格或星号(*),二维序列中的元素会形成一个由星号组成的正三角形。
spacenum = 5 #表示每一行星号两侧最多的空格数,最多为5个空格 i = 1 line = spacenum #表示当前行的前后空格数 triangle = [] #二维列表 while line >= 0: left = [' '] * line star = ['*'] * (2 * i - 1) right = [' '] * line linelist = left + star + right triangle.append(linelist) line -= 1 i += 1 for lines in triangle: print(lines)输出结果:
[' ', ' ', ' ', ' ', ' ', '*', ' ', ' ', ' ', ' ', ' '] [' ', ' ', ' ', ' ', '*', '*', '*', ' ', ' ', ' ', ' '] [' ', ' ', ' ', '*', '*', '*', '*', '*', ' ', ' ', ' '] [' ', ' ', '*', '*', '*', '*', '*', '*', '*', ' ', ' '] [' ', '*', '*', '*', '*', '*', '*', '*', '*', '*', ' '] ['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']