l = [['a', 'b', 'c', 'd'], ['1', '2', '3']]while all(l):print(tuple(s.pop(0) for s in l))while all 是啥意思啊為什么打印出來是('a', '1')('b', '2')('c', '3') 啊我迷茫了啊
2 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
all(iterable)返回一個布爾值,如果iterable里面含有0或者None,則返回False,否則返回True
while每次循環檢查I中的元素,也就是兩個子列表,如果其中一個為空(也就是None)則while循環中止。
如果兩個子列表都非空,則執行tuple(s.pop(0) for s in I)
也就是返回一個元組,元組中的元素是對I中的每個元素分別執行.pop(0)得到的
第一個子列表出棧'a', 第二個出棧'1', 因此就返回('a', '1')。
while一共循環三次,這時兩個子列表同時為空,于是循環停止

莫回無
TA貢獻1865條經驗 獲得超7個贊
>>> help(all)
Help on built-in function all in module builtins:
all(...)
all(iterable) -> bool
Return True if bool(x) is True for all values x in the iterable.
就是用來遍歷容器中每一個元素的。
添加回答
舉報
0/150
提交
取消