#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, я хочу
- сравните подмассивы в массиве A с «ноябрем» и выведите последнюю дату. например, «11-11-2020».
- сравните подмассивы в массиве 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. Вы можете написать это в двух строках с пониманием списка 🙂