Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表的布尔表达式_Python_List_Count_Boolean - Fatal编程技术网

Python 列表的布尔表达式

Python 列表的布尔表达式,python,list,count,boolean,Python,List,Count,Boolean,当列表中的元素都相同时,如果要返回True,我需要做什么 当有一个元素不相同时,False 例如: >>> f([3, 3, 3]) True >>> f([3, 3, 3, 2, 3, 3]) False 我试图为循环创建一个: for i in My_list: if i = ?: return False else: return True 但是我不知道我需要在中写什么?Python有一个

当列表中的元素都相同时,如果要返回
True
,我需要做什么 当有一个元素不相同时,
False

例如:

>>> f([3, 3, 3])
True  
>>> f([3, 3, 3, 2, 3, 3])
False
我试图为循环创建一个

for i in My_list: 
    if i = ?: 
        return False  
    else: 
        return True
但是我不知道我需要在
中写什么?

Python有一个只包含唯一元素的函数;只要列表元素始终是可散列的(
int
s),就可以测试结果集的长度:

>>> def all_the_same(l):
    return len(set(l)) == 1

>>> all_the_same([3, 3, 3])
True
>>> all_the_same([3, 3, 3, 2, 3, 3])
False
如果
所有相同([])
也应返回
True
,则将其设置为

try:
    all(my_list[0] == elem for elem in my_list[1:])
except IndexError:
    (Whatever you prefer)


有几种方法,IMO最可爱的方法是:

def f(lst):
    return lst[1:]==lst[:-1]
这基本上检查列表旋转1时是否保持不变,当且仅当所有元素相等时,这才是真的:

A B C D E F G A B C D E F G A B C D E F G
就个人而言,我会为列表中的第一个值设置一个变量,并在一个条件中对照它检查所有其他元素,如果有不同,则返回False。然后在该语句之外有一个
return True
语句,用于判断
False
是否从未返回。谢谢!你的len(set(my_list))==1非常有用!
def f(lst):
    return lst[1:]==lst[:-1]
A B C D E F G A B C D E F G