Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表转换为行_Python_List - Fatal编程技术网

Python 将列表转换为行

Python 将列表转换为行,python,list,Python,List,在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:]]

在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']

如果它是一个包含这些行的列表(
所有学生
),您可以通过执行以下操作来执行您想要的操作:

result = []
for student in all_students:
    student_name = student[0]
    result.extend([[student_name, value] for value in student[1:]]
print(result)

使用
字典
学生与其各自的数据配对

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}
i、 e:

您可以从中提取具有嵌套for循环或列表理解的单个对:

>>> [(k, w) for k, v in d.items() for w in v]
[('StudentA', '80'), ('StudentA', '94'), ('StudentA', '93'), ('StudentB', '93'), ('StudentB', '94')]

您的数据集已经有多行。到目前为止您尝试了什么?学生的名字会一直是列表的第一个元素吗?这个集合有可能是这样的吗<代码>['80','StudentA','94','93']道歉。学生将始终是第一要素,但每个要素都不会有一组统一的分数关联。您在
sudent[1://code>中漏掉了一个“t”;您可能希望更正这一点,以便您的示例运行时不会出现任何错误。
>>> 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')]