Python 如何使用列表理解来完成此操作?
这是打印这个OK!!!!:Python 如何使用列表理解来完成此操作?,python,python-2.7,Python,Python 2.7,这是打印这个OK!!!!: a='abcdcdc' list_=[x*3 for x in a] print list_ 但是我怎样才能打印这个呢 ['aaa', 'bbb', 'ccc', 'ddd', 'ccc', 'ddd', 'ccc'] 您可以使用: [a[i]+a[i+1]+a[i+2] for i in range(0,len(a)-1,2)] 这意味着i将获得以下值: >>> [a[i:i+3] for i in range(0,len(a) - 1,2)
a='abcdcdc'
list_=[x*3 for x in a]
print list_
但是我怎样才能打印这个呢
['aaa', 'bbb', 'ccc', 'ddd', 'ccc', 'ddd', 'ccc']
您可以使用:
[a[i]+a[i+1]+a[i+2] for i in range(0,len(a)-1,2)]
这意味着i
将获得以下值:
>>> [a[i:i+3] for i in range(0,len(a) - 1,2)]
['abc', 'cdc', 'cdc']
(当列表在i
上循环时)。这意味着范围(0,len(a)-1,2)
从0
开始,以2
的增量递增,直到达到最高值,但不超过len(a)-1
。在Python3文档中有一个较长的解释,这对阅读很有帮助
这意味着它将把a
切成所需的段(符号a[i:j]
意味着它将把a
的i
切片到j
)。它将首先获取片a[0:0+3]
,然后获取片a[2:2+3]
,最后获取片a[4:4+3]
,这是您要查找的字符串
我们从a
的长度中减去1,否则我们不会得到我们想要的结果:
>>> list(range(0,len(a) - 1,2))
[0, 2, 4]
您可以使用:
[a[i]+a[i+1]+a[i+2] for i in range(0,len(a)-1,2)]
这意味着i
将获得以下值:
>>> [a[i:i+3] for i in range(0,len(a) - 1,2)]
['abc', 'cdc', 'cdc']
(当列表在i
上循环时)。这意味着范围(0,len(a)-1,2)
从0
开始,以2
的增量递增,直到达到最高值,但不超过len(a)-1
。在Python3文档中有一个较长的解释,这对阅读很有帮助
这意味着它将把a
切成所需的段(符号a[i:j]
意味着它将把a
的i
切片到j
)。它将首先获取片a[0:0+3]
,然后获取片a[2:2+3]
,最后获取片a[4:4+3]
,这是您要查找的字符串
我们从a
的长度中减去1,否则我们不会得到我们想要的结果:
>>> list(range(0,len(a) - 1,2))
[0, 2, 4]
在这里使用
列表理解
实际上可能与Python的禅格格不入(“简单胜于复杂”)
虽然其他列表理解答案是正确的,但要理解它们为什么有效需要一段时间
另一方面,下面这样的代码乍一看并不难理解:
>>> [a[i:i+3] for i in range(0,len(a),2)]
['abc', 'cdc', 'cdc', 'c']
在这里使用
列表理解
实际上可能与Python的禅格格不入(“简单胜于复杂”)
虽然其他列表理解答案是正确的,但要理解它们为什么有效需要一段时间
另一方面,下面这样的代码乍一看并不难理解:
>>> [a[i:i+3] for i in range(0,len(a),2)]
['abc', 'cdc', 'cdc', 'c']
这是一个多么奇怪的模式。谢谢你的回复我是新手你能告诉我这是怎么工作的吗- 1,2@AutomaSha:我对答案进行了一点扩展。谢谢:)@simeon我不知道我们可以在范围函数上做类似的单步停止乞讨的事情尝试产生一种多么奇怪的模式。谢谢你的回答我是新手你能告诉我这是怎么工作的吗len(a)- 1,2@AutomaSha:我对答案进行了一点扩展。谢谢:)@simeon我不知道我们可以在范围函数上做类似于单步停止乞讨的事情