从另一个数组中检查数组中的值

时间:2017-11-16 16:04:27

标签: python arrays

所以我想看看是否有可能找到两个彼此相等的数组的值,但我不确定如何做到这一点。 这就是我到目前为止所做的:

unusedArray = ["AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS", "AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD", "AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH", "AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC"] 

value10 = ["10S", "10C", "10H", "10D"]

x = 0

for value10 in unusedArray:
   print(x)
   x += 1

x的打印只是为了查看for循环的运行次数。而不是仅运行4次的循环,它运行52(unusedArray中的值的数量)

2 个答案:

答案 0 :(得分:1)

您可以将列表转换为sets并使用intersection()

u = set(list_1).intersection(set(list_2))
print(u)
print(len(u))

请注意,您可以为更多列表执行此操作,例如

u = set(list_1).intersection(set(list_2), set(list_3))
print(u)
print(len(u))

否则:

u = [x for x in list_1 if x in list_2]
print(u)
print(len(u))

答案 1 :(得分:0)

您可以使用列表理解:

unusedArray = ["AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS", "AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD", "AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH", "AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC"] 

value10 = ["10S", "10C", "10H", "10D"]
final_List = [i for i in unusedArray if i in value10]

输出:

['10S', '10D', '10H', '10C']