목록을 파이썬의 개별 요소로 변환하는 효율적인 방법은 무엇입니까?목록을 행으로 변환
다음과 같은 데이터 세트가 있습니다.
['StudentA','80','94','93']
['StudentB','93','94']
각 학생/점수에 고유 한 행이 있도록 데이터를 재구성하고 싶습니다.
['StudentA','80']
['StudentA','94']
etc...
목록을 파이썬의 개별 요소로 변환하는 효율적인 방법은 무엇입니까?목록을 행으로 변환
다음과 같은 데이터 세트가 있습니다.
['StudentA','80','94','93']
['StudentB','93','94']
각 학생/점수에 고유 한 행이 있도록 데이터를 재구성하고 싶습니다.
['StudentA','80']
['StudentA','94']
etc...
는이 같은 지능형리스트를 사용할 수 있습니다
는data = ['StudentA','80','94','93']
res = [[data[0], x] for x in data[1:]]
이 [['StudentA', '80'], ['StudentA', '94'], ['StudentA', '93']]
에 res
을 설정합니다. 그것은이 라인을 각각 포함하는 목록 (all_students
를)한다면
c=['StudentA','80','94','93']
d=[[c[0], p] for p in c[1:]]
, 당신은 수행하여, 당신이 원하는 것을 할 수있는 :
result = []
for student in all_students:
student_name = student[0]
result.extend([[student_name, value] for value in student[1:]]
print(result)
당신은'sudent [1 :]'에서 't'를 놓쳤습니다; 예제를 오류없이 실행되도록 수정할 수 있습니다. – Aurora0001
커플 학생를 그것의 각각의 데이터가 dictionary
를 사용하여.
def to_dict(l):
d = {}
for i in l:
key = i[0]
value = i[1:]
d[key] = value
return d
샘플 출력 :
l = [['studentA', 90, 90],['studentB', 78, 40]]
print to_dict(l)
>>> {'studentB': [78, 40], 'studentA': [90, 90]}
for key, value in d.iteritems():
for i in value:
print key, i
>>> studentB 78
>>> studentB 40
>>> studentA 90
>>> studentA 90
이 DICT 이해 것입니다 학생 이름으로 그룹을 사용하면 데이터 :
d = {x[0]: x[1:] for x in dataset}
즉 :
>>> d
{'StudentA': ['80', '94', '93'], 'StudentB': ['93', '94']}
에서 중첩 된 for 루프 또는 목록 이해를 사용하여 개별 쌍을 추출 할 수 있습니다.
>>> [(k, w) for k, v in d.items() for w in v]
[('StudentA', '80'), ('StudentA', '94'), ('StudentA', '93'), ('StudentB', '93'), ('StudentB', '94')]
데이터 집합에 이미 여러 행이 있습니다. – Learner
지금까지 어떤 시도를 했습니까? 학생 이름이 항상 목록의 첫 번째 요소가됩니까? –
세트가 이렇게 보일 수 있습니까? ''[ '80', 'StudentA', '94', '93']'' – abhi