列表理解,用于将列表中的每个字符串乘以给定范围内的数字

时间:2020-05-23 06:00:31

标签: python list-comprehension

我正在尝试列表理解。但是,当我尝试为以下代码编写列表理解时,我陷入了困境。

a = ['x','y','z']
result = []
for i in a:
    for j in range(1,5):
        s = ''
        for k in range(j):
            s = s + i
        result.append(s)
result

此输出为:

['x', 'xx', 'xxx', 'xxxx', 'y', 'yy', 'yyy', 'yyyy', 'z', 'zz', 'zzz', 'zzzz']

是否有可能为此代码编写列表推导?如果要怎么写呢?

3 个答案:

答案 0 :(得分:12)

这里是:

[ x * i for x in ['x','y','z'] for i in range(1,5)  ]

结果:

['x', 'xx', 'xxx', 'xxxx', 'y', 'yy', 'yyy', 'yyyy', 'z', 'zz', 'zzz', 'zzzz']

答案 1 :(得分:2)

a = ['x','y','z']
result = []
result+=[i*j for i in a for j in range(1,5)]
result

这将起作用

答案 2 :(得分:1)

可能!!!!

>>> a = ['x','y','z']
>>> sorted([i*j for j in range(1,5) for i in a])
['x', 'xx', 'xxx', 'xxxx', 'y', 'yy', 'yyy', 'yyyy', 'z', 'zz', 'zzz', 'zzzz']