В Python, как разделить строку на несколько целых чисел? - PullRequest
1 голос
/ 10 ноября 2011

Это работает!

>>> from datetime import date

>>> today=date(2011,10,11)

Но как мне это сделать?

>>> day =  '2011/10/11'

>>> today=date(day.split('/'))

Примечание:

>>> day.split('/') 

['2011', '10', '11']

Я видел это ссылка. Но мне нужны целые числа для даты () , а не списка

Ответы [ 5 ]

10 голосов
/ 10 ноября 2011

Используйте datetime.datetime.strptime(), который разработан специально для разбора дат:

In [5]: datetime.datetime.strptime('2011/12/03', '%Y/%m/%d').date()
Out[5]: datetime.date(2011, 12, 3)
2 голосов
/ 10 ноября 2011

Вы можете перебрать список, полученный из day.split (), и преобразовать каждую запись в int.

today = date([int(x) for x in day.split('/')]) 
2 голосов
/ 10 ноября 2011

Это должно работать:

date(*map(int, day.split('/')))

>>> map(int, day.split('/'))
[2011, 10, 11]
>>> date(*map(int, day.split('/')))
datetime.date(2011, 10, 11)
2 голосов
/ 10 ноября 2011

Python имеет специальный синтаксис для передачи последовательности в качестве аргументов:

today=date(*day.split('/'))

Но параметры также должны быть целыми, поэтому вы можете использовать:

today=date(*map(int,day.split('/')))
0 голосов
/ 10 ноября 2011
>>> date( *(map(int,day.split('/'))))
datetime.date(2011, 10, 11)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...