py的input列表生成式,在"[]"写入任意行数,生成代码怎么写?

今天看到了一个非常有意思的代码

L = []
for x in range(1, 11):
    L.append(x * x)
 
 
print( [m + n for m in 'ABC' for n in 'XYZ'])
123
['1X', '1Y', '1Z', '2X', '2Y', '2Z', '3X', '3Y', '3Z']      [程序已完成]

那我有个疑问

L = []
for x in range(1, 11):
    L.append(x * x)
 
a =input()
b =input()
c =input()
…
z =…

print( [m + n for m in a for n in 'XYZ'])

若是任意input行数,这后面的代码咋写啊

单纯地任意Input行数肯定是不行的,要么就是指定input多少行,要么就是给定出现什么东西结束input,这是代码的基本逻辑。鉴于你的问题,如果按照正常的写代码逻辑应该就是遇到某些特定字符(一般是空字符结束input) 。下面是代码

import sys
try:
    mx = []
    while True:
        m = input().strip()
        # 上一行输入报错的话,可以用下一行,需要import sys
        # m = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if m == '':
            break
        mx.append(m)
    print(mx)
except:
    pass

while 1:
    x = input()
    print([m + n for m in x for n in 'XYZ'])