python - 创建包含 ['a', 'bb', 'ccc', ....] 最多 26 个 'z' 的列表
问题描述
问题说要创建一个包含元素['a','bb','ccc','dddd',...]的列表,最后一个元素应该是26个'z'。我需要使用 for 循环来执行此操作,避免使用函数。
我尝试过的是一种非常粗略的方法,但我想要一个更好的解决方案。我在开头包含了一个空格来说明字符串的乘法,但它给出了一个额外的“z”。
list1 = []
str1 = ' abcdefghijkelmnopqrstuvwxyz'
length = len(str1)
for i in range(1,length):
c = (str1[i])*i
list1.append(c)
print(list1)
输出为 27'z's。
解决方案
你e
的中间有str1
一个额外的空间,开始时还有一个额外的空间
str1 = ' abcdefghijkelmnopqrstuvwxyz'
# ^<<<<<>>>>>>^<<<<<<<<
您可以使用string
模块简单地获取字母:
>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>>
因此,您可以将其用作直接输入:
import string
str1 = string.ascii_lowercase
list1 = []
length = len(str1)
for i in range(0,length):
c = (str1[i])*(i+1)
list1.append(c)
print(list1)
但是,不使用循环,您可以轻松地将其作为列表推导:
[char*(i+1) for i, char in enumerate(str1)]
如果您不想使用库:
>>> str1 = "".join(chr(65+i) for i in range(0, 26)).lower()
>>> str1
'abcdefghijklmnopqrstuvwxyz'
>>>
推荐阅读
- scala - 如何将数据框或 RDD 转换为元组列表?
- python - 如何使用 python pandas 从 SQL Server 创建超过 700 MB 数据的 DataFrame
- java - 动态访问 Java 类的成员变量
- python - Plotly Dash 表回调 v2
- java - countDownLatch.await() 超时时记录
- java - 如何在 Spring Boot Tomcat 场景中清除线程上下文?
- javascript - React - Javascript 和 JSX 的条件渲染,条件包装器组件
- opencv - 如何将 OpenCV 4 与 ROS (cv_bridge) 连接起来
- javascript - 通过在控制器中发布字符串来制作 json
- git - 通过代理使用 Git