我想知道什么是逗号线意味着5逗号代表的意思是:a,b = b,a?
def insertion_sort(items):
for i in range(1, len(items)):
j = i
while j > 0 and items[j] < items[j-1]:
items[j], items[j-1] = items[j-1], items[j]
j -= 1
我想知道什么是逗号线意味着5逗号代表的意思是:a,b = b,a?
def insertion_sort(items):
for i in range(1, len(items)):
j = i
while j > 0 and items[j] < items[j-1]:
items[j], items[j-1] = items[j-1], items[j]
j -= 1
这意味着交换items[j]
和items[j-1]
我如何以更基本的方式做到这一点,我没有在我的班级中采用这种方法! – 2014-11-09 04:02:28
@OmarSherief它不完全先进。它是'items [j] = items [j-1]'和'items [j-1] = items [j]'的简写,除了它可以避免使用暂时有价值的东西。 – royhowie 2014-11-09 04:03:51
@royhowie对不起,我刚开始编程,我想知道如何做到这一点没有逗号。谢谢。所以我该怎么做? – 2014-11-09 04:15:52
它这个样子,
>>> a, b = 2, 10
>>> temp = a
>>> a = b
>>> b = temp
>>> a
10
>>> b
2
在你的情况下,
items[j], items[j-1] = items[j-1], items[j]
它会过程如下: -
temp = items[j]
item[j] = items[j-1j
items[j-1] = temp
右侧的逗号生成元组(b, a)
。左边的一个使用序列解包取等号右边的序列元素,并将它们逐个绑定到左边的名称。因此,整体操作是交换绑定到a
和b
的对象。
它是用在单行分配一个值items[j]=items[j-1]
和items[j-1] = items[j]
你可以像items[j], items[j-1] = items[j-1], items[j]
交换项目在这里就像swap
的值写入。
例如:
>>> a,b=10,20
>>> a
10
>>> b
20
>>> a,b
(10, 20)
这意味着它们是[元组(https://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences)的[ – MattDMo 2014-11-09 03:58:47
可能重复是有一个标准化的方法来交换Python中的两个变量?](http://stackoverflow.com/questions/14836228/is-there-a-standardized-method-to-swap-two-variables-in-python) – 101 2014-11-09 04:05:17
@MattDMo ,这不意味着他们是_sequences_。不只是元组。 – 2014-11-09 04:09:08