简体   繁体   English

如何在列表的特定索引位置将项目附加到字典内的列表中?

[英]How to append items to a list inside a dictionary at specific index locations of the list?

I have dictionary called data that looks like this:我有一个名为 data 的字典,如下所示:

{'Annou1_date': [NoneType,NoneType,....], 'Appro2_date': [NoneType,NoneType,....], 'Appro3_date': [NoneType,NoneType,....]}

And, I want to update Appro2_date's list at index 1 so that my dictionary would like:而且,我想在索引 1 处更新 Appro2_date 的列表,以便我的字典需要:

{'Annou1_date': [NoneType,NoneType,....], 'Appro2_date': [NoneType,22nd July 2021,....], 'Appro3_date': [NoneType,NoneType,....]}

How would I do this?我该怎么做?

I tried doing:我试着做:

#RECRUITMENT PRE-PROCESSING SCRIPT
import pandas as pd
import numpy as np
import math

#Reading report file
df1 = pd.read_excel("C:/Users/INT011/Desktop/WorkFlows/Dashboards/Recruitment Workflow/Recruitment Workflow Tasks.xlsx") 
df1 = df1.sort_values(by=["Workflow ID","Task ID"], ascending=True)
wf_id,tk_id,tk_name,sd,ed,delay,st,category,assignee,ini,can_name,can_desig,hod,posi,dept,jb_num,qty,ddj,fdj,lk \
    = df1['Workflow ID'].tolist(),df1['Task ID'].tolist(),df1['Task Name'].tolist(),df1['Start Date'].tolist(),df1['End Date'].tolist(),df1['Delay(Days)'].tolist(),df1['Status'].tolist(), \
        df1['Category'].tolist(),df1['Assignee Name'].tolist(),df1['Initiator'].tolist(),df1['Name Of Candidate'].tolist(),df1['Candidate Designation'].tolist(),df1['HOD Selection'].tolist(), \
            df1['Position'].tolist(),df1['Department'].tolist(),df1['Project Number'].tolist(),df1['Quantity'].tolist(),df1['Desired Date Of Joining'].tolist(),df1['Final Date Of Joining'].tolist(), \
                df1['Alfresco Link'].tolist()
sd = pd.to_datetime(df1['Start Date'])
df1['End Date'] = pd.to_datetime(df1['End Date'])
df1['Min Date'] = df1.groupby(['Workflow ID', 'Task Name'])['End Date'].transform('min')
df1['Max Date'] = df1.groupby(['Workflow ID','Task Name'])['End Date'].transform('max')
firstdate = df1['Min Date'].tolist()
lastdate = df1['Max Date'].tolist()
tasklist = np.unique(tk_name)
t = len(tasklist)
task_var_names = [str()]*t
for i in range(t):
    task_var_names[i] = tasklist[i][0:5]+str(i+1)+"_date"
    
#New Columns for Output File
a = len(wf_id)
x=np.array(wf_id)
x=np.unique(wf_id)
b=len(x)

data = dict((task_var_names[i], [None]*b) for i in range(t))

runnintask,status,ct,initiator,HOD,jb,alflink = [str()]*b,[str()]*b,[str()]*b,[str()]*b,[str()]*b,[str()]*b,[str()]*b

for i in range(0,b):
    for j in range(0,a):        
        if x[i] == wf_id[j]:
            alflink[i] = lk[j]
            ct[i] = category[j]
            for k in range(t):
                if tk_name[j] == tasklist[k]:
                    data[task_var_names[k]] = ed[j]

but it replaces the list with single values like:但它用单个值替换列表,例如:

{'Annou1_date': '17-Jul-2021', 'Appro2_date': '24-Jul-2021', 'Appro3_date': '22-Jul-2021'}
  • From the dictionary, Get the value of Appro2_date which is a list从字典中,获取Appro2_date的值,它是一个list
  • Now update the list at your desired index.现在在您想要的索引处更新list

lst[index] = new_value

d = {'Annou1_date': [None,None], 'Appro2_date': [None,None,None], 'Appro3_date': [None,None,None]}
date_str = '22nd July 2021'

# Updating the list. Modify data at index - 1
d['Appro2_date'][1] = date_str

print(d)
{'Annou1_date': [None, None], 'Appro2_date': [None, '22nd July 2021', None], 'Appro3_date': [None, None, None]}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM