gpt4 book ai didi

python - 迭代迭代器对象中的 "1 or more"元素?

转载 作者:行者123 更新时间:2023-11-30 23:17:57 25 4
gpt4 key购买 nike

我正在尝试找到一种优雅的方式来做到这一点。我基本上有一个返回记录的类。我为此使用了一个基本迭代器:

i = 0
if mode == "sim":
for record in iterator_obj:
try:

s.sendall(record)
time.sleep(delay)
i += 1

但是这个迭代器类已被修改,因此如果使用命令行开关,它会返回一个(记录,延迟)的元组。

我在 time.sleep(延迟)

看起来像这样(如果迭代器不返回延迟,这显然会失败):

for record, wait in iterator_obj:

if wait == 0:
pass
else:
delay = wait
if verbose:
print ('\n[+] Waiting {} seconds to send next record'.format(delay))


try:

s.sendall(record)
time.sleep(delay)
i += 1

浪费了很多行,有没有办法为 1 个或多个元素执行条件 for 循环?

for x, y (if y) in iterator_object

解决方案

诀窍是使用 isinstance 来检查元组。更新后的代码如下:

for record in iterator_obj:

wait = None
if isinstance(record,(list,tuple)):
record,wait = record

if wait == 0 or wait is None:
pass
else:
delay = wait
if verbose:
print ('\n[+] Waiting {} seconds to send next record'.format(delay))

最佳答案

for record in myList:
wait = None
if isinstance(record,(list,tuple)):
record,wait = record

可能就是你想要的......

关于python - 迭代迭代器对象中的 "1 or more"元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27052208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com