Python 对立面的比较与替代
我有一个有两个项目的列表,我想让c等于b的对立面Python 对立面的比较与替代,python,list,Python,List,我有一个有两个项目的列表,我想让c等于b的对立面 如何让c保存“rzz3”?因为列表只有两项,简单的操作就可以了: >>> a = ['rzz2', 'rzz3'] >>> b = 'rzz2' >>> c = a[0] if a[0] != b else a[1] >>> c 'rzz3' >>> 就性能而言,这是最快的解决方案: >>> from timeit import time
如何让c保存“rzz3”?因为列表只有两项,简单的操作就可以了:
>>> a = ['rzz2', 'rzz3']
>>> b = 'rzz2'
>>> c = a[0] if a[0] != b else a[1]
>>> c
'rzz3'
>>>
就性能而言,这是最快的解决方案:
>>> from timeit import timeit
>>> a = ['rzz2', 'rzz3']
>>> b = 'rzz2'
>>> timeit('a[0] if a[0] != b else a[1]', 'from __main__ import a, b')
0.45458095931186787
>>> timeit('a[1 - a.index(b)]', 'from __main__ import a, b')
1.0331033692829674
>>> timeit('{b}.symmetric_difference(a)', 'from __main__ import a, b')
0.9464230789108647
>>> timeit('[i for i in a if i!=b][0]', 'from __main__ import a, b')
2.0873136110874384
>>>
因为列表只有两项,所以简单的
>>> a = ['rzz2', 'rzz3']
>>> b = 'rzz2'
>>> c = a[0] if a[0] != b else a[1]
>>> c
'rzz3'
>>>
就性能而言,这是最快的解决方案:
>>> from timeit import timeit
>>> a = ['rzz2', 'rzz3']
>>> b = 'rzz2'
>>> timeit('a[0] if a[0] != b else a[1]', 'from __main__ import a, b')
0.45458095931186787
>>> timeit('a[1 - a.index(b)]', 'from __main__ import a, b')
1.0331033692829674
>>> timeit('{b}.symmetric_difference(a)', 'from __main__ import a, b')
0.9464230789108647
>>> timeit('[i for i in a if i!=b][0]', 'from __main__ import a, b')
2.0873136110874384
>>>
我很想在这里选择一个集合,它可能返回零个或多个结果
a = ['rzz2', 'rzz3']
b = 'rzz2'
print {b}.symmetric_difference(a)
# set(['rzz3'])
我很想在这里选择一个集合,它可能返回零个或多个结果
a = ['rzz2', 'rzz3']
b = 'rzz2'
print {b}.symmetric_difference(a)
# set(['rzz3'])
如果它总是两个列表
如果它总是两个列表 在你提供的上下文中没有相反的概念。你想要一个补语,但根本不一样。如果你的目标只是删除列表a中b的外观,你可以使用a.removeb。这只删除了a中b的第一个外观。什么是“rzz2”的对立面?在您提供的上下文中没有相反的概念。您需要一个补充,但完全不同。如果您的目标只是删除列表a中b的外观,您可以使用a.removeb。这只删除了a中b的第一次出现。什么是“rzz2”的对立面?+1在时间上它。。。只是出于好奇,你介意加入迪克齐帕语吗?我只是想知道它们之间的区别没关系。。。慢啊慢啊。。。真是个疯狂的主意…@JonClements-抱歉耽搁了-我出去了。有趣的是,其中一个巨大的因素是呼吁扭转局面。用[::-1]替换它,大大提高了性能,在我的系统上从6.102846311472548提高到3.98821721755391。无论如何,这是一个疯狂的想法。。。只是我突然想到。。。尽管使用[:-1]有很好的意义,但即使如此,它仍然是一只死蜗牛。谢谢你的时间。。。只是出于好奇,你介意加入迪克齐帕语吗?我只是想知道它们之间的区别没关系。。。慢啊慢啊。。。真是个疯狂的主意…@JonClements-抱歉耽搁了-我出去了。有趣的是,其中一个巨大的因素是呼吁扭转局面。用[::-1]替换它,大大提高了性能,在我的系统上从6.102846311472548提高到3.98821721755391。无论如何,这是一个疯狂的想法。。。只是我突然想到。。。尽管使用[:-1]有很好的意义,但即使如此,它仍然是一只死蜗牛。谢谢你的时间。如果b不在a中怎么办?那么无的对立面是错误,我问。?我仍然在计算“RZZ 2”的对立面。如果b不在a中怎么办?那么无的对立面是错误,我问。?我仍然在计算“RZZ 2”的对立面