在Python中將列表轉換爲單獨元素的有效方法是什麼?將列表轉換爲行
我有一個看起來像這樣的數據集;
['StudentA','80','94','93']
['StudentB','93','94']
我想重新塑造數據,以便每個學生/分數都有自己的行;
['StudentA','80']
['StudentA','94']
etc...
在Python中將列表轉換爲單獨元素的有效方法是什麼?將列表轉換爲行
我有一個看起來像這樣的數據集;
['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:]]
這臺res
到[['StudentA', '80'], ['StudentA', '94'], ['StudentA', '93']]
。
c=['StudentA','80','94','93']
d=[[c[0], p] for p in c[1:]]
如果它包含這些行的列表(all_students
),你可以做你想做的,做:
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
這個字典解析會組你的數據由學生姓名:
d = {x[0]: x[1:] for x in dataset}
即:
>>> d
{'StudentA': ['80', '94', '93'], 'StudentB': ['93', '94']}
從您可以使用嵌套循環或列表理解提取單個對:
>>> [(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