首页 > 解决方案 > 创建包含 ['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。

标签: pythonpython-3.xlistfor-loop

解决方案


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'
>>> 

推荐阅读