如何在python中复制某些内容?

如何在python中复制某些内容?,python,python-3.x,Python,Python 3.x,我会接受用户的输入并根据他们给我的数字缩放图像,例如,当他们说2时,原始图像是 hph pph h p 在图像缩放后,它将成为 hhpphh hhpphh pppphh pppphh hh pp hh pp 我可以使用哪些功能来执行此操作?非常感谢您的帮助 假设您的输入如下所示: [ 'hph', 'pph', 'h p', ] 您可以使用此功能: def func(lines): return '\n'.join('\n'.join(''.join(c

我会接受用户的输入并根据他们给我的数字缩放图像,例如,当他们说2时,原始图像是

hph
pph
h p
在图像缩放后,它将成为

hhpphh
hhpphh
pppphh
pppphh
hh  pp
hh  pp

我可以使用哪些功能来执行此操作?非常感谢您的帮助

假设您的输入如下所示:

[
    'hph',
    'pph',
    'h p',
]
您可以使用此功能:

def func(lines):
    return '\n'.join('\n'.join(''.join(c+c for c in line) for i in range(2)) for line in lines)

以pythonic方式使用我的函数

def scaleImage(inp, origin):
    return ''.join([y+'\n'+y+'\n' for y in ''.join([a+a*(inp-1) if a != "\n" else "\n" for a in origin]).split('\n')]).strip('\n')
因此,您可以通过

origin = """hph
pph
h p"""

print(scaleImage(2, origin))
这将打印出来

hhpphh
hhpphh
pppphh
pppphh
hh  pp
hh  pp

我想你最终会得到一大堆类似的答案,但我尽可能地美化了它

n = 2
s = '''hph
pph
h p'''

modified = ''.join([letter*n if letter != '\n' else letter for letter in s])

for line in modified.split('\n'):
    for times in range(n):
        print(line)
输出:

hhpphh
hhpphh
pppphh
pppphh
hh  pp
hh  pp

“形象”是什么意思?显示的“ASCII艺术”还是真实的图像文件?我的意思是由字母组成。太复杂了,你的就更复杂了complicated@DerekEden是的:)@FaranAiki XD好时光也许我的代码很难阅读,因为我关注速度:)好的,所以我修复了它,现在它是100%真实(有用)的,帮助很大!你能解释一下这是怎么回事吗?我将n=2更改为用户输入,但我似乎无法理解您在修改的变量中做了什么。我是一个初学者。实际上我编辑它是为了让它更简单…不知道为什么我在修改变量中有第二个循环..我想我在玩它,它工作并继续运行,但它是不必要的..请参阅下面的注释了解一些解释modified是一个列表理解,基本上只是一行中的一个循环,它输出一个列表…它循环通过
s
(这是一个字符串)中的每个字母/字符,然后重复n次。。。i、 e.
'h'*2='hh'
,除了换行符('\n'),因为我们不希望输出的行之间有
n
空格…所以现在您有了一个修改过的字符串,其中字母刚刚重复了n次。.底部的for循环将字符串拆分为
'\n'
(换行符)并打印出每行
n
次…即。现在我们已经将这些字母重复了n次(水平)并打印了
n
次(垂直)