0

目标是:使用列表生成器(而不是使用外部代码),根据以下逻辑转换字符串:对于字符串的每个字符,在最终列表中创建一个字符串,其中包含一定数量的字符副本等于从源字符串末尾计算的字符数。例如: 'abcd' - > ['aaaa', 'bbb', 'cc', 'd']。所以,首先我尝试在没有列表生成器的情况下解决这个问题:

s='abcd'
a=' '.join(s)
b=a.split()
for i in range(len(b)):
    b[i]*=len(b)-i
print(b)

然后我尝试了列表生成器并找到了问题:

a=[input() for i in range(len(input()))]
print(a)

1)如何将input()包含在变量中以及如何在一行中正确地将字符串转换为列表(我的意思是不使用生成器之外的 cod)?2)如何编写“for”循环的主体,如果生成器的一般形式如下:[expr for targets in iterable]

4

1 回答 1

2

如果我正确理解您的要求,那么以下一个班轮应该满足您的限制 -

print([character * (idx + 1) for idx, character in enumerate(input()[::-1])][::-1])

它非常不习惯,您应该考虑一个更具可读性的解决方案 - 当然,除非这是练习的目的。

于 2021-06-20T11:53:25.160 回答