Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 - Fatal编程技术网

Python 对立面的比较与替代

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等于b的对立面


如何让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”的对立面