Python 相同代码的不同结果
Python different results from same code
发生了一件非常奇怪的事情。我试图在 回答这个问题,我做了以下回答(我没有 post 因为这个问题的一些现有答案非常紧凑和有效)但这是我的代码制作:
array = [['abc',2,3,],
['abc',2,3],
['bb',5,5],
['bb',4,6],
['sa',3,5],
['tt',2,1]]
temp = []
temp2 = []
for item in array:
temp.append(item[0])
temp2 = list(set(temp))
x = 0
for item in temp2:
x = 0
for i in temp:
if item == i:
x+=1
if x >= 2:
while i in temp:
temp.remove(i)
for u in array:
for item in array:
if item[0] not in temp:
array.remove(item)
print(array)
代码应该可以工作,按照给定 link 的提问者的要求执行。但我得到两对结果:
[['sa', 3, 5], ['tt', 2, 1]]
和
[['bb', 4, 6], ['tt', 2, 1]]
为什么在 运行 时,相同的代码在相同的操作系统、相同的编译器、相同的一切上产生两个不同的答案?注意:结果不会交替。它在我上面列出的两个可能的输出之间是随机的。
在 Python 中,集合没有任何特定的顺序,即实现可以自由选择任何顺序,因此每个程序的顺序可能不同 运行。
您在这里转换为集合:
temp2 = list(set(temp))
对结果进行排序应该会给您一致(但可能不正确)的结果:
temp2 = sorted(set(temp))
我的 array
成绩。
已排序:
temp2 = sorted(set(temp))
array
看起来像这样:
[['bb', 4, 6], ['tt', 2, 1]]
反转:
temp2 = sorted(set(temp), reverse=True)
array
看起来像这样:
[['sa', 3, 5], ['tt', 2, 1]]
发生了一件非常奇怪的事情。我试图在
array = [['abc',2,3,],
['abc',2,3],
['bb',5,5],
['bb',4,6],
['sa',3,5],
['tt',2,1]]
temp = []
temp2 = []
for item in array:
temp.append(item[0])
temp2 = list(set(temp))
x = 0
for item in temp2:
x = 0
for i in temp:
if item == i:
x+=1
if x >= 2:
while i in temp:
temp.remove(i)
for u in array:
for item in array:
if item[0] not in temp:
array.remove(item)
print(array)
代码应该可以工作,按照给定 link 的提问者的要求执行。但我得到两对结果:
[['sa', 3, 5], ['tt', 2, 1]]
和
[['bb', 4, 6], ['tt', 2, 1]]
为什么在 运行 时,相同的代码在相同的操作系统、相同的编译器、相同的一切上产生两个不同的答案?注意:结果不会交替。它在我上面列出的两个可能的输出之间是随机的。
在 Python 中,集合没有任何特定的顺序,即实现可以自由选择任何顺序,因此每个程序的顺序可能不同 运行。
您在这里转换为集合:
temp2 = list(set(temp))
对结果进行排序应该会给您一致(但可能不正确)的结果:
temp2 = sorted(set(temp))
我的 array
成绩。
已排序:
temp2 = sorted(set(temp))
array
看起来像这样:
[['bb', 4, 6], ['tt', 2, 1]]
反转:
temp2 = sorted(set(temp), reverse=True)
array
看起来像这样:
[['sa', 3, 5], ['tt', 2, 1]]