Заменить ни одно значение на значения в том же списке - PullRequest
0 голосов
/ 30 марта 2020

Привет, я новичок в python, и я борюсь с этим примером. Я хочу заменить пустые элементы датами в списке. Например, каждый пустой элемент заменен с понедельника до вторника ... Я использую python 2.7.

этот список, который я получаю:

[u'Monday 30 March', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'Tuesday 31 March', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'Wednesday  1 April', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'']

это то, что я пытался:

for tim in time_d:
    if tim =='':
        print time_d[0]

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Вы ищете что-нибудь. например:

for i, val in enumerate(time_d):
    if not val:
        time_d[i] = time_d[i-1]

time_d
# ['Monday 30 March', 'Monday 30 March', ... ,'Monday 30 March', 
#  'Tuesday 31 March', 'Tuesday 31 March', ... , 'Tuesday 31 March', 
#  'Wednesday  1 April', 'Wednesday  1 April', ..., 'Wednesday  1 April']

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

0 голосов
/ 30 марта 2020

Это простое решение (в Python 3):

dates = ['Monday 30 March', '', '', '', '', '', '', '', '', '', 'Tuesday 31 March', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Wednesday  1 April', '', '', '', '', '', '', '', '', '', '', '', '', '', '']     
newdates = []
current = ''
for item in dates:
    if not item:
        newdates.append(current)
    else:
        current = item
        newdates.append(current)
print(dates)
print(newdates)

с выводом:

['Monday 30 March', '', '', '', '', '', '', '', '', '', 'Tuesday 31 March', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Wednesday  1 April', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
['Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Monday 30 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Tuesday 31 March', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April', 'Wednesday  1 April']
...