- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果输入是
round_robin(range(5), "hello")
我需要输出为
[0, 'h', 1, 'e', 2, 'l', 3, 'l', 4, 'o']
我试过了
def round_robin(*seqs):
list1=[]
length=len(seqs)
list1= cycle(iter(items).__name__ for items in seqs)
while length:
try:
for x in list1:
yield x
except StopIteration:
length -= 1
pass
但它给出错误为
AttributeError: 'listiterator' object has no attribute '__name__'
如何修改代码以获得所需的输出?
最佳答案
您可以使用 zip
函数,然后用列表推导式将结果展平,就像这样
def round_robin(first, second):
return[item for items in zip(first, second) for item in items]
print round_robin(range(5), "hello")
输出
[0, 'h', 1, 'e', 2, 'l', 3, 'l', 4, 'o']
zip
函数将来自两个可迭代对象的值分组,如下所示
print zip(range(5), "hello") # [(0, 'h'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')]
我们获取每个元组并使用列表推导式将其展平。
但正如@Ashwini Chaudhary 建议的那样,使用 roundrobin receipe from the docs
from itertools import cycle
from itertools import islice
def roundrobin(*iterables):
"roundrobin('ABC', 'D', 'EF') --> A D E B F C"
# Recipe credited to George Sakkis
pending = len(iterables)
nexts = cycle(iter(it).next for it in iterables)
while pending:
try:
for next in nexts:
yield next()
except StopIteration:
pending -= 1
nexts = cycle(islice(nexts, pending))
print list(roundrobin(range(5), "hello"))
关于python - python中两个列表混合的Round Robin方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062532/
Stata 有一个 round() 函数。人们可以选择舍入到的单位。我想使用round(ArbitraryValue, 0.01)将任意浮点值四舍五入到小数点后两位。 Stata 的 display
四舍五入看起来很容易,但我不知道如何四舍五入。 使用这段代码: def __str__(self): return'x = %.2f,y = %.2f'%(self.x,self.y)
我发现一个很奇怪的问题,问题是PHP和Javascript中的ROUND方法计算结果不一样!? 请看下面的例子: PHP echo round(175.5); // 176 echo round(-1
让我们看一下那句令人震惊的round语句: >>> round(2.675, 2) 2.67 我知道为什么回合“失败”;这是因为 2.675 的二进制表示: >>> import decimal >>
这个问题已经有答案了: 奥 git _a (1 个回答) 已关闭 7 年前。 我发现 VBA Round 函数返回错误的结果。我找到了一个可行的替代方案,即使用 Application.Round 代
所以我正在运行 MySQL 5.1.4 版,我试图通过四舍五入的值来选择 distinct,它工作得很好,除了它把数字四舍五入,比如 12.5 到 12 而不是 13。我试过的列都是double型的。
guess = input("H or T?") def game(): num_rounds() for p1 in range(0, 2): p1 = ("H",
我了解到建议使用 BigDecimal 而不是 Float,但这要么是一个错误,要么突出了 Float 的深奥本质.似乎 Float#round(2) 对“1.015”、“1.025”和“1.035”
C# 中的 Math.Round 和 decimal.Round 函数有什么区别? 最佳答案 没有区别。 Math.Round(decimal)源代码: public static Decimal R
我注意到 Math.Round()比 Decimal.Round() 更灵活,因为它能够处理 Decimal.Round() 可以处理的所有事情,而且在给定 double 输入的情况下也可以处理同样的
我在生成的 SVG 中看到一个奇怪的渲染问题。我已经把它缩小到一个小的可重复的案例。 这呈现为 (至少在 Safari、Mac Chrome 或 Mac Firefox 中查看时)。我希望
我有以下 SQL Server 语句,我想将其转换为 c#。我知道 C# 中有一个叫做 Math.Round 的东西。我已经尝试过,但 C# 返回相同的结果 c# 返回一个 int。有关详细信息,请查
我正在使用 C# 和 SQL 中的 ROUND 函数,令人惊讶的是两者都产生了不同的结果。 在 SQL 中:ROUND(1250.00, -2) = 1300 在 C# 中 ROUND 1250 ro
我正在尝试使用 SSE(1,2,3) 指令创建类似于 std::round() 的函数,但某些值和/或逻辑运算符存在一些问题。这是我的代码: #include #include #include
jq 中的 round 函数不起作用。 $ jq '10.01 | round' jq: error: round/0 is not defined at , line 1: 10.01 | roun
我试图弄清楚如何使用 VBA 更改 Excel 中圆角矩形形状的圆度。 我首先创建圆角矩形,但此时我不确定下一步要做什么。 Set roundedRec = ws.Shapes.AddShape(ms
当我的代码运行时,我进入 2 人模式并调用函数 rounda 和 roundb,但由于某种原因它们没有响应。其他一切都正常,但我不知道出了什么问题。预先感谢您提供任何可能的建议。我的代码如下。我调用函
我从阅读中知道this Stackoverflow question编译器将查看您的数字,确定中点是偶数还是奇数,然后返回偶数。示例数字是 2.5,四舍五入为 3。我尝试了自己的小实验以查看会发生什么
这个问题在这里已经有了答案: There's a shadow on my button (3 个答案) 关闭 9 年前。 顺便说一句。它可能看起来像是关于按钮阴影问题的重复问题,但它们具有单调背景
据我了解,2.675 和 numpy.float64(2.675) 都是相同的数字。然而,round(2.675, 2) 给出 2.67,而 round(np.float64(2.675), 2) 给
我是一名优秀的程序员,十分优秀!