3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
一個(gè)比使用在序列(而不是可迭代的)上工作的set()更快的解決方案是簡(jiǎn)單地計(jì)算第一個(gè)元素。這假設(shè)列表是非空的(但這是很簡(jiǎn)單的檢查,并決定自己的結(jié)果應(yīng)該在一個(gè)空的列表上)
x.count(x[0]) == len(x)
一些簡(jiǎn)單的基準(zhǔn):
>>> timeit.timeit('len(set(s1))<=1', 's1=[1]*5000', number=10000)
1.4383411407470703
>>> timeit.timeit('len(set(s1))<=1', 's1=[1]*4999+[2]', number=10000)
1.4765670299530029
>>> timeit.timeit('s1.count(s1[0])==len(s1)', 's1=[1]*5000', number=10000)
0.26274609565734863
>>> timeit.timeit('s1.count(s1[0])==len(s1)', 's1=[1]*4999+[2]', number=10000)
0.25654196739196777

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
all(x==myList[0] for x in myList)
添加回答
舉報(bào)