- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在学习列表理解的过程中遇到了一种我找不到资源来充分理解的问题。
问题源于以下问题:我们有一个数组 [1,2,3,8,9] 并希望创建一个表达式,将每个奇数返回两次,而偶数只返回一次。
注意:还有提示我可以创建嵌套列表,但到目前为止还没有帮助我确定这对我有何帮助。
适当算法的输出应该是:[1,1,2,3,3,8,9,9]
使用循环,我可以像这样做我想做的事:
OtherNumList = [1, 2, 3, 8, 9]
OtherNumList2 = []
for i in OtherNumList:
if i%2==1:
OtherNumList2.append(i)
OtherNumList2.append(i)
else:
OtherNumList2.append(i)
print(OtherNumList2)
我只想使用一个表达式来完成此操作,或者使用列表推导式将其“单行”化。
我正在努力理解如何将理解设置为在 X 时追加两次,而在 Y 时追加一次。
即使只是构建理解的概念,我也非常感谢您的帮助;我不希望有一个勺子喂养的解决方案,如果你能引导我完成你的思考过程,我宁愿选择它,这样我就可以更好地为将来更好地理解列表奠定自己的基础! :)
最佳答案
您可以在没有外部工具的情况下在单个列表理解中执行此操作。您只需要根据从外部序列中提取的值来创建并遍历内部值序列:
OtherNumList = [1, 2, 3, 8, 9]
OtherNumList2 = [rep for i in OtherNumList for rep in (i,)*(i%2+1)]
print(OtherNumList2)
这里的技巧是第二个for
。它根据 i
是偶数(一个副本)还是奇数(两个副本)迭代一个或两个 i
副本的 tuple
。方便的是,我们在这里甚至不需要真正的 bool 检查; (i%2+1)
对于偶数始终为 1
,对于奇数始终为 2
,因此我们可以直接使用它进行乘法运算。然后直接生成正确次数的结果值,不需要额外的扁平化。
关于python - 列表理解 Append Odds Twice Evens Once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420116/
query("SELECT id, look, username, motto FROM users WHERE rank = '7'"); if($query->num_rows > 0):
这个问题在这里已经有了答案: Why does integer division yield a float instead of another integer? (4 个答案) 关闭 1 年前。
面试中被问到的问题: 给定一个数组。任务是排列数组: 奇数元素占据奇数位置,偶数元素占据偶数位置。 - 元素的顺序必须保持不变。 考虑从零开始的索引。 按条件打印后,若有剩余,则原样打印剩余元素。 例
首先,抱歉英语不是我的第一语言。 *(偶数和奇数是根据索引) 我想在移动 View 中实现此表。 我尝试过的 Content 1 Head Content 2
我有一个包含多行的表格 - 我为每一行分配了一个悬停功能。如果所选的 TR 是奇数还是偶数,我想在悬停函数中找出什么。 我使用了这段代码: alert(tr.is(":odd")); 不幸的是,它不起
我有一个奇怪的。我无法使用以下内容创建表: 数据库中已经存在表Users,只需添加UserTimeZones,但会失败。 CREATE TABLE `Users` ( `AccessFailed
我们在类里面学习数组,我被分配了这个编程项目。到目前为止,我已经编写了下面的代码,但我对如何让它正常工作感到困惑。我应该为我的代码使用带有 System.out.println 语句的 for 循环。
但是,如果 67 在原始数组中出现两次,它也需要在新数组中出现两次。 我试图解决this coding challenge通过创建频率图,然后将具有偶数值的键插入最终数组: function oddO
在我的 C++ 中学习复制构造函数等的使用。我们得到了一个我们要完成的程序模板,但是我的输出在我的输出流中抛出了时髦的 asci 字符。 这是我的主要类(class): #include using
我的主要问题是设置 JFrame 时的以下代码: public Frame(){ JPanel panel = new JPanel(); add(panel); panel.setPre
我正在开发一个 iOS 应用程序,我的 AVQueuePlayer 导致了问题。播放时出现此错误: RTCReporting: resolve from https://qtpartners.appl
我正在开发一个 3 选项卡的 iPhone 应用程序,我希望每个选项卡的 View 看起来共享相同的 map 。所以目前,我只是想弄清楚当单击新选项卡时如何重置每个 View 的 MKMapView
我正在尝试将文本渲染为非矩形的形状。以下代码在添加矩形路径时有效,但在添加椭圆路径时无效。最终,我想绘制任何路径(L 形等),有人对此有运气吗? -(void)drawRect:(CGRect)rec
这个问题在这里已经有了答案: Can I combine :nth-child() or :nth-of-type() with an arbitrary selector? (8 个答案) 关闭
鉴于我只想选择频率,我正在尝试计算逆 FFT。以下是我进行 FFT 的方法: final double[] points = reader.readPoints(); final DoubleFFT_
我是 scheme 的初学者,有人可以给我一些关于如何获取“列表中奇数位置的元素”的想法吗?所以 ( A B C D G ) 返回 ( G C A)。我得到了相反的列表,我现在需要拉出所有其他数字。请
我试图让底部图表的宽度与月份的长度成正比。 但是,我最终得到了 我有 2 层图表,第 1 层有一个更大的图,占据了一整行,另一个有 12 个图,占据了整个第二行。 对于第二行图,我希望它们的宽度与月份
我对递归概念有一点困难。 给定一个具有整数值的 LinkedList L1 = (2->1->4->6->3) L2= (1->9->6->3) 该函数应从整数 N 开始的链表中删除奇数,并返回对新
我有一个动态生成的 div 列表,并且我有这个脚本来制作交替背景颜色 - 为了 IE。 .box { height:30px; width:100px; background-color:#fff;
我有一个 DoubleEditor,它是根据从网上获取的 Integer Editor 进行修改的。我使用它来验证在 JXTable 单元格中输入的 double 值,该值旨在获取 0.00 到 10
我是一名优秀的程序员,十分优秀!