比较来自不同列表的两个元组

2024-10-05 12:13:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这段基本代码,在这段代码中,我只是尝试比较第一个列表(list1)中的每个元组与第二个列表(list2)中对应的元组。如果列表2中的元组=到列表1中对应的元组减去'.vbproj',则取两个元组并返回它们。在

然后我需要打印path+来自list2的tuple+来自list1的tuple。我只是不知道该怎么做。在

path = "C:\Users\bg\Documents\Brent"

list1 = [ 'Brent.vbproj', 'Chris.vbproj', 'Nate.vbproj']
list2 = ['Brent', 'Chris', 'Nate']

def connect(list1, list2):

    for x, y in zip(string[0], string2[0]):
        if string(x) is string2(y):
            print x
            os.path.join(path, x, y)




x = connect(list1, list2)
y = connect(list1, list2)

我以为zip()比较了两个元组的最小等价性,但我可能错了??我不知道,任何帮助都会非常感谢。提前谢谢!在


Tags: path代码列表stringconnectzipchris元组
2条回答

使用==测试是否相等。is测试同一性,两边是同一对象。另外,您的输入stringstring2不是函数,因此不能调用它们。直接比较x和{}:

if x == y:

请注意,当您调用return时,函数结束于。下一行的print语句将被忽略,for循环也将结束。在

最后但并非最不重要的是,您只压缩了stringstring2第一个元素。我怀疑你想用list1list2来调用它,这时你可能想先配对'Brent.vbproj'和{},然后{}和{}等等。如果是这样,只需传递列表而不索引

^{pr2}$

不过,我怀疑您是否能实现您想要的结果;list1和{}中的值对都不会相等。在

也许你想看看^{} method?另外,^{} library有一些函数,如果您在操作和测试文件名和路径,您需要熟悉这些函数。^{}^{}^{}函数应该对您在这里要做的事情特别感兴趣。在

注意,path变量也需要调整。使用原始字符串、正斜杠或双斜杠:

path = r"C:\Users\bg\Documents\Brent"
path = "C:\\Users\\bg\\Documents\\Brent"
path = "C:/Users/bg/Documents/Brent"

因为\b是退格的转义码。在

您还没有定义string和{}!!不管怎样,我从你的问题文本中理解了你的问题!!在

比较list1中的元组与list2中对应的元组,我自己作为一个初学者会用另一种方式来做。。在

>>> path = r"C:\Users\bg\Documents\Brent"
>>> list1 = [ 'Brent.vbproj', 'Chris.vbproj', 'Nate.vbproj']
>>> list2 = ['Brent', 'Chris', 'Nate']
>>> for i in range(0, len(list1)):
    if i < len(list2):
        if list2[i][:] == list1[i][:len(list2[i])]:
            print(path + list2[i] + list1[i]) #Print syntax is for python 3


C:\Users\bg\Documents\BrentBrentBrent.vbproj
C:\Users\bg\Documents\BrentChrisChris.vbproj
C:\Users\bg\Documents\BrentNateNate.vbproj
>>> 

相关问题 更多 >

    热门问题