首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >范围简化

范围简化
EN

Stack Overflow用户
提问于 2022-07-23 06:28:46
回答 4查看 69关注 0票数 -2
代码语言:javascript
复制
list1 = [6,1,3]
for item in list1:
  result = ""
  for y in range(item):
    result += "*"
  print(result)

这将在控制台中输出:

代码语言:javascript
复制
******

*

***

问题是,是否有可能有一个更简单的代码(简化)来完成这个任务?我是这里的新手,对python很抱歉,如果这不是一个很难的问题,谢谢你的理解

请不要说:

代码语言:javascript
复制
print("******\n*\n***")
EN

回答 4

Stack Overflow用户

发布于 2022-07-23 06:31:38

代码语言:javascript
复制
print('\n'.join('*'*i for i in (6,1,3)))
票数 0
EN

Stack Overflow用户

发布于 2022-07-23 06:34:41

当然你可以

代码语言:javascript
复制
for i in list1:
    print(i*'*')
票数 0
EN

Stack Overflow用户

发布于 2022-07-23 06:41:35

在Python中,可以使用*操作符重复指定次数的字符串。所以:

代码语言:javascript
复制
"Python" * 3

代码语言:javascript
复制
3 * "Python"

给予:

代码语言:javascript
复制
"PythonPythonPython"

您可以编写一个函数来生成模式:

代码语言:javascript
复制
def generate_pattern(frequencies, pattern = '*'):
    lines = (pattern * i for i in frequencies)
    return lines

或者:

代码语言:javascript
复制
def generate_pattern(frequencies, pattern = '*'):    
    return map(lambda f: f * pattern, frequencies)

然后你可以像这样使用它:

代码语言:javascript
复制
lines = generate_pattern([6, 1, 3])
代码语言:javascript
复制
print(*lines, sep="\n")

代码语言:javascript
复制
for line in generate_pattern([6, 1, 3]):
    print(line)

您还可以传递一个自定义字符串:

代码语言:javascript
复制
lines = generate_pattern([6, 1, 3], pattern="#")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73088537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档