检查2D列表是否仅包含2个特定值

时间:2017-11-09 16:27:29

标签: arrays python-3.x

我需要检查一个二维数组以确保它只包含两个特定字符。

假设我将这个存储在名为(data)的列表中的二维数组中:

**%****%%%***
%***%*%%****%
****%%%$*****

我需要验证数组是否只包含(' *','%') 如果它包含任何其他值,例如(' $'),则需要返回false并向用户打印语句。

我尝试使用forall但无法使用2d数组。

同样在Python 3x中

1 个答案:

答案 0 :(得分:1)

data = [ '**%****%%%***', '%***%*%%****%', '****%%%$*****' ]
result = all( (len(x) == x.count('*') + x.count('%')) for x in  data)

我在这里将二维数组表示为字符串列表。

如果您将表示更改为列表列表,它仍然有效(因为countstr都可以使用list函数。