2012-03-14 4 views
-1

Как сравнить две строки и список значений символасравнения строк в Python

l=['s','t','a','k','','o','v','e','r'] 
s='stack over' 

как сравнить содержимое (список и ов). , если оба они равны, он должен возвращать «ноль», если один больше другого, тогда положительный положительный меньше, чем другой, тогда отрицательное значение Я хочу сравнить приведенный выше список 'l' и string 's' , пожалуйста, скажите мне, как чтобы сделать это с питона код ..

+2

если это для сортировки, вы не должны использовать 'CMP()' – georg

ответ

6
l=['s','t','a','k','','o','v','e','r'] 
s='stack over' 

cmp(l, list(s)) 

возвращается -1, потому что l больше s (четвертая позиция в kl больше c в s)

l=['s','t','a','c', 'k',' ','o','v','e','r'] 
s='stack over' 

cmp(l, list(s)) 

возвращает 0, поскольку они «равны».

2

Вы можете использовать функцию cmp для этого. Для сравнения 2 пунктов, оба они должны быть того же типа, так что вы можете попробовать

In [2]: l=['s','t','a','k','','o','v','e','r'] 

In [3]: s='stack over' 

In [4]: cmp(l, s) 
Out[4]: -1 

In [5]: cmp(''.join(l), s) 
Out[5]: 1 

In [6]: ''.join(l) 
Out[6]: 'stakover' 

In [7]: cmp(l, list(s)) 
Out[7]: 1 
5

Или

>>> l=['s','t','a','k','','o','v','e','r'] 
>>> s='stack over' 
>>> cmp(''.join(l), s) 
1