2

例えば。

l1 = [a,b,c,d]
l2 = [e,b,f,g]

bがl1とl2の両方にあり、両方のリストの[1]の位置にあることを確認したときにtrueを返すメソッド。リスト内のすべてのアイテムを比較できるように、forループで使用できるものが望ましいです。

どうもありがとう :)

4

5 に答える 5

3

このコードを試してください:

if 'b' in l1 and 'b' in l2: # Separated both statements to prevent ValueErrors
    if l1.index('b') == l2.index('b'): 
        print 'b is in both lists and same position!'

Volatilityのコードとは異なり、どちらのリストの長さも重要ではありません。

index()関数は、文字列内の要素の位置を取得します。たとえば、次の場合:

>>> mylist = ['hai', 'hello', 'hey']
>>> print mylist.index('hello')
1
于 2013-01-27T00:06:58.767 に答える
2

できるよ:

def has_equal_element(list1, list2):
    return any(e1 == e2 for e1, e2 in zip(list1, list2))

この関数はTrue、少なくとも1つの要素が他のリストと同じ値と位置にある場合に返されます。この関数は、リストの長さが異なる場合にも機能します。それが望ましくない場合は、関数を調整する必要があります。

于 2013-01-27T00:08:24.350 に答える
1

zipリストが同じ長さであると仮定すると、関数を使用できます

for i, j in zip(l1, l2):
    if i == j:
        print '{0} and {1} are equal and in the same position'.format(i, j)

zip関数が行うことは次のようなものです:

l1 = [1, 2, 3]
l2 = [2, 3, 4]
print zip(l1, l2)
# [(1, 2), (2, 3), (3, 4)]

True入力を返すまたは与えられる関数が必要な場合はFalse、これを行うことができます

def some_func(your_input, l1, l2):
    return (your_input,)*2 in zip(l1, l2)

(your_input,)はを含む1タプルyour_inputであり、これに2を掛けると、(your_input, your_input)テストしたいものになります。

Trueまたは、条件を満たしている場合は返品が必要な場合

def some_func(l1, l2):
    return any(i == j for i, j in zip(l1, l2))

このany関数は基本的に、リストの要素(この場合はジェネレーター)のいずれかがTrueブールコンテキストにあるかどうかをチェックするため、この場合、2つのリストが条件を満たしている場合はtrueを返します。

于 2013-01-27T00:05:34.810 に答える
0

2つのリストの1つの位置を比較する方法が実際に必要な場合は、次を使用できます。

def compare_pos(l1, l2, pos):
    try:
        return l1[pos] == l2[pos]
    except IndexError:
        return False

l1 = [0, 1, 2, 3]
l2 = [0, 2, 2, 4]

for i, _ in enumerate(l1):
    print i, compare_pos(l1, l2, i)

# Output:
# 0 True
# 1 False
# 2 True
# 3 False

2つのリストの同じ要素がすべて同じ位置にあるかどうかをテストする場合は、等しいかどうかを確認できます。

print l1 == l2
于 2013-01-27T00:06:43.557 に答える
0

両方のリストから共通の要素を取得します。

l1 = [a, b, c, d]
l2 = [e, b, f, g]
common_elements = [(i, v) for i,v in enumerate(l1) if l2[i] == v]

これにより、タプルのリストが作成されます。(index, value)次に、目的の値またはインデックスがリストに含まれているかどうかを確認できます。

于 2013-01-27T00:08:36.443 に答える