Как проверить, отображается ли текущий элемент массива в подмассиве другого массива?

#python

Вопрос:

Допустим, у меня есть 2 массива:

 Array A = [['Nov','11-10-2020'],['Jan','01-13-2020'],['Nov','11-11-2020'],['Dec','12-03-2020'],['Jan','01-03-2020'],['Nov','11-03-2020']]

Array B = ['Nov','Jan']
 

Поскольку оба 'Nov' и 'Jan' отображаются в массиве B, я хочу

  1. сравните подмассивы в массиве A с «ноябрем» и выведите последнюю дату. например, «11-11-2020».
  2. сравните подмассивы в массиве A с «Янв.» и выведите последнюю дату. например, «01-13-2020».

Могу я узнать, как я могу это сделать на python?

Комментарии:

1. мм-дд-гггг

2. но как сравнить эти подмножества в A?

3. Попробуйте это » для i в A: для x в B: если я[0] == x: печать(x) печать (i[1]) »

Ответ №1:

 from datetime import datetime

Array_A = [['Nov','11-10-2020'],['Jan','01-13-2020'],['Nov','11-11-2020'],['Dec','12-03-2020'],['Jan','01-03-2020'],['Nov','11-03-2020']]

Array_B = ['Nov','Jan']

print (f"Nov: {max([datetime.strptime(x[1], '%m-%d-%Y') for x in Array_A if x[0] in Array_B[0]])}")
print (f"Dec: {max([datetime.strptime(x[1], '%m-%d-%Y') for x in Array_A if x[0] in Array_B[1]])}")
 

Ответ №2:

Здесь есть гораздо лучшие ответы, но я думаю, что это один из способов сделать это.

 from datetime import datetime

A = [['Nov','11-10-2020'],['Jan','01-13-2020'],['Nov','11-11-2020'],['Dec','12-03-2025'],['Jan','01-03-2020'],['Nov','11-03-2020']]
B = ['Nov','Jan', 'Dec']
latest_date = datetime.min
for i in range(0, len(A)):
    for j in B:
        if j in A[i]:
            if datetime.strptime(A[i][1], '%m-%d-%Y') > latest_date:
                latest_date = datetime.strptime(A[i][1], '%m-%d-%Y')
latest_date = latest_date.strftime("%m-%d-%Y")
print(latest_date)
 

Комментарии:

1. Вы можете написать это в двух строках с пониманием списка 🙂