2017-10-03 5 views
0

저는 파이썬으로 작성한 새로운 프로그래밍입니다.각 하위 목록을 파이썬 목록 목록에 추가하십시오.

나는 다음과 같은 목록의 목록이 있습니다

[['Name', 'Status', 'AppSpace', 'MgmtPort', 'Agent'], 
['Test-Node4', 'Running', 'Test', '2231', 'machine1'], 
['Test-Node1', 'Running', 'Test', '2231', 'Machine2'], 
['Test-Node3', 'Running', 'Test', '2231', 'machine3'], 
['Test-Node2', 'Running', 'Test', '2231', 'Machine4'], 
['Test-Node5', 'Running', 'Test', '2231', 'machine5']] 

그리고 하위 목록의 각 (처음에) 몇 가지 항목을 추가하고 싶습니다. 그래서 다음과 같이보고한다 :

나는 CSV 뭔가에 데이터를 for 루프를 통해 하위 목록을 읽고 조작 시도,하지만 더 나은 방법이
[['DOMAIN', 'Application' , 'Name', 'Status', 'AppSpace', 'MgmtPort', 'Agent'], 
['UAT' , 'CaseCreation' , 'Test-Node4', 'Running', 'Test', '2231', 'machine1'], 
['UAT' , 'CaseCreation' , 'Test-Node1', 'Running', 'Test', '2231', 'Machine2'], 
['UAT' , 'CaseCreation' , 'Test-Node3', 'Running', 'Test', '2231', 'machine3'], 
['UAT' , 'CaseCreation' , 'Test-Node2', 'Running', 'Test', '2231', 'Machine4'], 
['UAT' , 'CaseCreation' , 'Test-Node5', 'Running', 'Test', '2231', 'machine5']] 

?

제발 제안하십시오.

답변

1

아래처럼 각각의 하위 목록의 시작 부분에 항목을 삽입 할 수 있습니다

ar = [['Name', 'Status', 'AppSpace', 'MgmtPort', 'Agent'], 
['Test-Node4', 'Running', 'Test', '2231', 'machine1'], 
['Test-Node1', 'Running', 'Test', '2231', 'Machine2'], 
['Test-Node3', 'Running', 'Test', '2231', 'machine3'], 
['Test-Node2', 'Running', 'Test', '2231', 'Machine4'], 
['Test-Node5', 'Running', 'Test', '2231', 'machine5']] 

first_row = ['DOMAIN', 'Application'] 
other_row = ['UAT' , 'CaseCreation'] 
for i in range(len(ar)): 
    if i==0: 
     for elem in first_row[::-1]: 
      ar[i].insert(0,elem) 
    else: 
     for elem in other_row[::-1]: 
      ar[i].insert(0,elem) 
print(ar) 

출력 :

[['DOMAIN', 'Application', 'Name', 'Status', 'AppSpace', 'MgmtPort', 'Agent'], ['UAT', 'CaseCreation', 'Test-Node4', 'Running', 'Test', '2231', 'machine1'], ['UAT', 'CaseCreation', 'Test-Node1', 'Running', 'Test', '2231', 'Machine2'], ['UAT', 'CaseCreation', 'Test-Node3', 'Running', 'Test', '2231', 'machine3'], ['UAT', 'CaseCreation', 'Test-Node2', 'Running', 'Test', '2231', 'Machine4'], ['UAT', 'CaseCreation', 'Test-Node5', 'Running', 'Test', '2231', 'machine5']] 
0

반복적 인 접근이 필요한 것입니다,하지만 당신이 원하는 경우 코드를보다 간결하기 , 파이썬에서 map() 함수를 사용할 수 있습니다.이 함수를 사용하면 요소에 대한 작업을 목록에 적용 할 수 있습니다.

new = list(map(lambda x: ['Name', 'Status'] + x if(x[0] is 'Name') else ['UAT' , 'CaseCreation'] + x, oldlist)) 
1

당신이 목록에서 어떤 위치에 삽입 할 수 insert 방법을 사용할 수 있습니다 원하는 경우 :

list_a=[['Name', 'Status', 'AppSpace', 'MgmtPort', 'Agent'], 
['Test-Node4', 'Running', 'Test', '2231', 'machine1'], 
['Test-Node1', 'Running', 'Test', '2231', 'Machine2'], 
['Test-Node3', 'Running', 'Test', '2231', 'machine3'], 
['Test-Node2', 'Running', 'Test', '2231', 'Machine4'], 
['Test-Node5', 'Running', 'Test', '2231', 'machine5']] 


a=['DOMAIN','Application'] 
b=['UAT' ,'CaseCreation'] 



for first,second in enumerate(list_a): 
    if first==0: 
     for item_1 in a: 
       second.insert(0, item_1) 


    else: 
     for item in b: 
      second.insert(0,item) 
print(list_a) 
2

내가 답변은 위의 당신이 원하는 걸 줄 것이라고 생각합니다. 하지만, 팬더 도서관을 사용해 보셨습니까? 그런 종류의 데이터를 관리하는 것이 좋은 방법이라고 생각합니다. 이 예제를보세요 :

import pandas as pd 

original_list = [['Name', 'Status', 'AppSpace', 'MgmtPort', 'Agent'], 
['Test-Node4', 'Running', 'Test', '2231', 'machine1'], 
['Test-Node1', 'Running', 'Test', '2231', 'Machine2'], 
['Test-Node3', 'Running', 'Test', '2231', 'machine3'], 
['Test-Node2', 'Running', 'Test', '2231', 'Machine4'], 
['Test-Node5', 'Running', 'Test', '2231', 'machine5']] 

df_original= pd.DataFrame(original_list[1:], columns = original_list[0]) #Convert the list into a DataFrame 

new_item = ["UAT","UAT","UAT","UAT","UAT"] #Create a list with the data, or a series 
new_item2 = ["CaseCreation","CaseCreation","CaseCreation","CaseCreation","CaseCreation"] 

df_original.insert(0,"DOMAIN",new_item) # Then you use insert to add the item wherever you want. 
df_original.insert(1,"Application",new_item2) 

print(df_original) 

출력 : 당신은 심지어 쉬운 방법으로 죄수 CSV, 제외를 변환, 각 열을 조작하고 당신이 원하는대로 행 수 팬더와

DOMAIN Application  Name Status AppSpace MgmtPort  Agent 
0 UAT CaseCreation Test-Node4 Running  Test  2231 machine1 
1 UAT CaseCreation Test-Node1 Running  Test  2231 Machine2 
2 UAT CaseCreation Test-Node3 Running  Test  2231 machine3 
3 UAT CaseCreation Test-Node2 Running  Test  2231 Machine4 
4 UAT CaseCreation Test-Node5 Running  Test  2231 machine5 

.

관련 문제