map () выводит добавление строки в строковый массив Python - PullRequest
0 голосов
/ 25 октября 2018

с использованием Python 3.6.1

time_vector = ['06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05', '06']

doublezeroes = "00"

time=map(str(time_vector), doublezeroes)

print(time)

Я получаю объект карты в 0x7ff64a3580f0 с <>

Мне нужно

time = ['0600', '0700', '0800', '0900', '1000', '1100', '1200', '1300', '1400', '1500', '1600', '1700', '1800', '1900', '2000', '2100', '2200', '2300', '0000', '0100', '0200', '0300', '0400', '0500', '0600']

Я уверен, что может быть проще добавить или вставить просто не знаю, как туда добраться.Спасибо

Ответы [ 5 ]

0 голосов
/ 25 октября 2018

Попробуйте этот код, который почти совпадает с вашим кодом, с лямбда-выражением `добавлено:

time_vector = ['06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05', '06']

time=list(map(lambda k: k+'00', time_vector))

print(time)
0 голосов
/ 25 октября 2018

Вы можете использовать str.ljust

Пример:

time_vector = ['06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05', '06']
doublezeroes = "00"

print(list(map(lambda x: x.ljust(4, "0"), time_vector)))

Выход:

['0600',
 '0700',
 '0800',
 '0900',
 '1000',
 '1100',
 '1200',
 '1300',
 '1400',
 '1500',
 '1600',
 '1700',
 '1800',
 '1900',
 '2000',
 '2100',
 '2200',
 '2300',
 '0000',
 '0100',
 '0200',
 '0300',
 '0400',
 '0500',
 '0600']
0 голосов
/ 25 октября 2018

Самый простой способ сделать это, вероятно, следующий:

time = [v + doublezeroes for v in time_vector]
0 голосов
/ 25 октября 2018

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

In [1132]: new = [ s + '00' for s in time_vector]

In [1133]: new
Out[1133]: 
['0600',
 '0700',
 '0800',
 '0900',
 '1000',
 '1100',
 '1200',
 '1300',
 '1400',
 '1500',
 '1600',
 '1700',
 '1800',
 '1900',
 '2000',
 '2100',
 '2200',
 '2300',
 '0000',
 '0100',
 '0200',
 '0300',
 '0400',
 '0500',
 '0600']
0 голосов
/ 25 октября 2018

Используйте функцию lambda вместе с картой для получения вывода

Небольшие анонимные функции можно создавать с помощью ключевого слова lambda.Эта функция возвращает сумму двух своих аргументов: лямбда a, b: a + b.Лямбда-функции можно использовать везде, где требуются функциональные объекты.Они синтаксически ограничены одним выражением.

time_vector = ['06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05', '06']

doublezeroes = "00"

timelist=list(map(lambda x:x+doublezeroes, time_vector))

print(timelist)

OUTPUT

['0600', '0700', '0800', '0900', '1000', '1100', '1200', '1300', '1400', '1500', '1600', '1700', '1800', '1900', '2000', '2100', '2200', '2300', '0000', '0100', '0200', '0300', '0400', '0500', '0600']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...