我想编写一些python来获取现有列表,并为原始列表中的每个条目创建一个包含两个条目的新列表。你知道吗
示例:每个条目都应生成两个新条目:x+1和3x
a = [1]
a = [2, 3]
a = [3, 6, 4, 9]
a = [4, 9, 7, 18, 5, 12, 10, 27]
可以输入什么代码来产生所需的输出:
a = [1]
for i in range(3):
a = ???
我试过:
a = [(x+1, 3*x) for x in a]
。。。但这是不正确的,因为第一次迭代给出了一个包含单个元组的列表:
a = [(2, 3)]
。。。而后续的迭代也不起作用。你知道吗
除了答案,对产生答案的思维过程进行一些解释将是最有帮助的。你知道吗
编辑:如果有人能告诉我为什么我的问题获得了接近的票数,我也会很感激。你知道吗
下面是一个使用^{} 和generator expression的非常有效的解决方案:
提供的链接应该解释除
list(...)
部分之外的所有内容。我这样做是因为结果是列表,而不是<itertools.chain object at 0x01815370>
。你知道吗根据评论编辑:
是的,你可以链上你想要的任意多的
chain objects
,然后最后把整个东西转换成一个列表。请参见下面的演示:输出:
相关问题 更多 >
编程相关推荐