Python代码简化咨询:如何简化基于Range生成指定数量星号的循环代码
更简洁的实现方案
Python里字符串有个实用特性——和整数相乘会重复对应次数,利用这个特性能直接简化你的代码,完全不需要嵌套循环:
方案一:简化循环写法
list1 = [6, 1, 3] for item in list1: print("*" * item)
直接用"*" * item生成对应长度的星号字符串,一步替代原来的内层循环和字符串拼接操作,逻辑清晰又简洁。
方案二:一行代码实现
如果追求极致简洁,还可以用生成器表达式配合print的参数完成:
print(*("*" * x for x in [6, 1, 3]), sep="\n")
这里用生成器表达式逐个生成星号字符串,*用来解包所有生成的字符串作为print的参数,sep="\n"指定每个输出之间用换行分隔,一行就搞定所有操作。
这两种方案都是基于列表中的动态数值生成输出,没有硬编码固定字符串,完全符合你的要求。
内容的提问来源于stack exchange,提问作者jessiehitech
相关产品推荐
相关产品推荐

