gpt4 book ai didi

Python 追加未按预期工作

转载 作者:行者123 更新时间:2023-12-01 03:52:16 26 4
gpt4 key购买 nike

x_list = [0, 0]
y_list = [0, 1]
def coordinates(condition_x, condition_y):
zipped = zip(x_list, y_list)
condition_coord = condition_x,condition_y
for a,b in zipped:
print a,b
coord = a,b
if condition_coord != coord:
x_list.append(condition_x)
y_list.append(condition_y)
else:
print "Already a room there"

print x_list
print y_list
coordinates(0,1)
print x_list
print y_list

对于这段代码,我想要完成的是:有两个列表 x_listy_list,我正在检查是否有任何坐标对已经在那里了。 x_listy_list 的第一个索引是第一个坐标,它们的第二个索引是第二个坐标,依此类推。

在坐标函数中,我想查看两个列表,并测试该坐标是否已经存在,如果不存在,则将其附加到两个列表中,创建另一个坐标对.

我遇到的错误是在测试时,它显示“那里已经有一个房间”并将坐标附加到列表中,即使它们已经在那里。

示例:

coordindates(0,1)
coordindates(0,2)

应该在第一次调用时返回“那里已经有一个房间”,并在第二次调用时将 0 附加到 X_list,将 2 附加到 y_list。

最佳答案

您的代码无法工作,因为您为每对夫妇进行了检查和添加。因此,如果您有 N 个坐标,则需要添加新坐标 N 次,如果已经存在,则添加 N-1 次。你必须做这样的事情:

def coordinates(condition_x, condition_y):
zipped = zip(x_list, y_list)
condition_coord = condition_x,condition_y
in_lists = False

for a,b in zipped:
print a,b
coord = a,b
if condition_coord = coord:
in_lists = True
break

if not in_lists:
x_list.append(condition_x)
y_list.append(condition_y)

或者更好,只需使用 set元组数:

>>> coordinates = {(5, 7), (9, 0), (0, 1)}
>>> coordinates
set([(0, 1), (9, 0), (5, 7)])
>>> coordinates.add((5, 7))
>>> coordinates
set([(0, 1), (9, 0), (5, 7)])
>>> coordinates.add((4, 4))
>>> coordinates
set([(0, 1), (9, 0), (5, 7), (4, 4)])

关于Python 追加未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com