Python can';我不理解行数据集[l.split()[2]]的含义。追加(l)

Python can';我不理解行数据集[l.split()[2]]的含义。追加(l),python,Python,在执行python脚本时,我无法理解以下函数数据集引用的是csv文件,而数据集是字典,那么这行数据集[l.split()[2]]是什么意思。append(l)的意思是,从未见过对字典执行这种关闭操作 datasets = {'normal': [], 'pneumonia': [], 'COVID-19': []} for l in self.dataset: datasets[l.split()[2]].append(l) self.datasets = [

在执行python脚本时,我无法理解以下函数数据集引用的是csv文件,而数据集是字典,那么这行数据集[l.split()[2]]是什么意思。append(l)的意思是,从未见过对字典执行这种关闭操作

datasets = {'normal': [], 'pneumonia': [], 'COVID-19': []}
    for l in self.dataset:
        datasets[l.split()[2]].append(l)
    self.datasets = [
        datasets['normal'] + datasets['pneumonia'],
        datasets['COVID-19'],
    ]
    print(len(self.datasets[0]), len(self.datasets[1]))

    self.on_epoch_end()

它将l拆分为一个列表,获取该列表第二个索引处的项,在字典数据集的键中查找该项,然后将l追加到字典中与该键相关联的值列表中。

因此我只是使用print语句将其分解。我同意papke的观点,但我想补充一点,您的“数据集”大概是一个“列表”数据结构,该列表数据结构中的每个“元素”都包含一个名字和姓氏(或其他标识符)以及数据集中包含的三个名称之一。所有这一行——datasets[l.split()[2]].append(l)——does将列表中的每个元素拆分为3个字符串,最后一个字符串用于标识它应该在datasets字典中使用的“键”。然后将个人信息添加到数据集字典中

这有用吗

datasets = {'normal': [], 'pneumonia': [], 'COVID-19': []}

dataset = ['John Doe normal', 'Abby Rose pneumonia', 'Sammy Hagar COVID-19']

for l in dataset:
    print(l)
    print(l.split()[2])
    datasets[l.split()[2]].append(l)

print(datasets['normal'])
print(datasets['pneumonia'])
print(datasets['COVID-19'])
这是输出:

John Doe normal
normal
Abby Rose pneumonia
pneumonia
Sammy Hagar COVID-19
COVID-19
['John Doe normal']
['Abby Rose pneumonia']
['Sammy Hagar COVID-19']

您是否尝试添加一些
print
调用来查看
l.split()[2]
是什么?您可以尝试将该语句分解为其组成部分,以了解发生了什么。请给我们一个
l
的示例,它将使人们能够编写一个简短的解释。欢迎使用堆栈溢出!请阅读。您还可以使用它来帮助逐步可视化代码的执行。