gpt4 book ai didi

python - 带有条件语句的嵌套 for 循环的列表理解?

转载 作者:行者123 更新时间:2023-12-01 06:31:35 25 4
gpt4 key购买 nike

我正在研究列表理解,虽然我已经看到很多讨论来回答我的问题,但我还没有看到如下代码被制作成列表理解。

# example array and counter var

rotated = [['#', '.', 'X', 'X', 'X'], ['.', '.', 'X', 'X', 'X'], ['X', '#', '#', '.', '.'], ['X', 'X', 'X', 'X', 'X']]
shot = 0

# I dont know how to turn the example code below this into its list comprehension form.

for i in rotated:
for j in i:
if j == "#":
break
elif j == "X":
shot += 1

我知道不按原样使用它(嵌套 for 循环)有点毫无意义,但我想看看是否可以编写等效的列表理解或生成器表达式。

最佳答案

您可以通过以下方式在一行中完成此操作 - 使用 ''.join()要根据每个子列表中的字符创建字符串,请使用 split('#')[0]将它们转换为第一次出现 # 之前的所有内容,然后 count('X')这给出了 X 的数量字符串中的字符。最后,我们使用 sum()将所有数字加在一起。

>>> rotated = [['#', '.', 'X', 'X', 'X'], ['.', '.', 'X', 'X', 'X'], ['X', '#', '#', '.', '.'], ['X', 'X', 'X', 'X', 'X']]
>>> sum(''.join(x).split('#')[0].count('X') for x in rotated)
9

关于python - 带有条件语句的嵌套 for 循环的列表理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59883920/

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