Не самый элегантный способ, но это сработало для меня:
var ms = date.substring(6, date.length - 2);
var newDate = formatDate(ms);
function formatDate(ms) {
var date = new Date(parseInt(ms));
var hour = date.getHours();
var mins = date.getMinutes() + '';
var time = "AM";
// find time
if (hour >= 12) {
time = "PM";
}
// fix hours format
if (hour > 12) {
hour -= 12;
}
else if (hour == 0) {
hour = 12;
}
// fix minutes format
if (mins.length == 1) {
mins = "0" + mins;
}
// return formatted date time string
return date.getMonth() + 1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + hour + ":" + mins + " " + time;
}
my_list = [1,2,3,4,5]
len(my_list)
# 5
те же работы для кортежей:
my_tuple = (1,2,3,4,5)
len(my_tuple)
# 5
И строки, которые являются действительно просто массивами символов:
my_string = 'hello world'
len(my_string)
# 11
Это было намеренно сделано этот путь так, чтобы списки, кортежи и другие контейнерные типы не должны были все явно реализовывать общественность .length()
метод, вместо этого можно просто проверить len()
из чего-либо, что реализует 'волшебство' __len__()
метод.
Несомненно, это может казаться избыточным, но реализации проверки длины могут значительно варьироваться, даже в том же языке. Весьма распространено видеть, что один тип набора использует .length()
метод, в то время как другой тип использует .length
свойство, в то время как еще одно использование .count()
. Наличие ключевого слова уровня языка объединяет точку входа для всех этих типов. Таким образом, даже объекты, которые Вы не можете считать списками элементов, могли все еще быть проверены в длине. Это включает строки, очереди, деревья, и т.д.
, функциональная природа [1 110] также предоставляет себя хорошо функциональным стилям программирования.
lengths = map(len, list_of_containers)
Путем Вы берете длину чего-либо, для которого это имеет смысл (список, словарь, кортеж, строка...) должен звонить len
на нем.
l = [1,2,3,4]
s = 'abcde'
len(l) #returns 4
len(s) #returns 5
причина "странного" синтаксиса состоит в том, что внутренне Python переводит len(object)
в object.__len__()
. Это относится к любому объекту. Так, если Вы определяете некоторый класс, и имеет смысл для него иметь длину, просто определить __len__()
метод на нем, и затем можно звонить len
на тех экземплярах.
Использование Python утка, вводящая : это не заботится о том, что объект , пока это имеет соответствующий интерфейс для ситуации под рукой. При вызове встроенной функции len () на объекте Вы на самом деле называете его внутреннее __ len __ метод. Пользовательский объект может реализовать этот интерфейс, и len () даст ответ, даже если объект не будет концептуально последовательностью.
Для полного списка интерфейсов, взгляните здесь: http://docs.python.org/reference/datamodel.html#basic-customization
Предпочтительный способ получить длину любого объекта Python состоит в том, чтобы передать его как аргумент эти len
функция. Внутренне, Python затем попытается назвать специальное предложение __len__
метод объекта, который был передан.
Просто используйте len (прибытие):
>>> import array
>>> arr = array.array('i')
>>> arr.append('2')
>>> arr.__len__()
1
>>> len(arr)
1