如何在python中复制某些内容?
我会接受用户的输入并根据他们给我的数字缩放图像,例如,当他们说2时,原始图像是如何在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
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
次(垂直)