所以我做输入/输出,我试着让我的程序逻辑下来,因为给定的名字和课程,我会把名字按字母顺序写进文件,然后是他们所学的课程。我完成了这一点,并把所有的东西都写进了一张单子里。现在我正试图连接到一个文本文件"name, class, .....(if more than one class)"
但由于我已经把它编入了1d列表,所以程序逐项编写,而不是将名称和类放在一起。例如,我想把新文件读出来
Ashley,MATH 1426,PHYS 1443
Jonathan,IE 3312
Joseph,IE 3312
Nang,MATH 1426
Ram,IE 3312
Randal,IE 3301,MATH 2325,PHYS 1443
Sol,IE 3301
如果我有一个单d列表怎么办。我在想写些
while name, remains the same, write the classes, when name changes print newline....., write name and classes
问题是这是一个名单,我不知道如何检测名称的变化。是否有必要将其转换为一个包含一个名称及其类的子列表?这是我原始的二维列表,没有缩写
[['Adam', 'PHYS 1443'], ['Ashley', 'IE 3312'], ['Ashley', 'PHYS 1443'], ['August', 'PHYS 1444'], ['Baron', 'PHYS 1443'], ['Christopher', 'IE 3301'], ['Christopher', 'CSE 1320'], ['Christopher', 'PHYS 1443'], ['Dylan', 'CSE 1310'], ['Henry', 'PHYS 1444'], ['James', 'IE 3301'], ['James', 'PHYS 1443'], ['Jonathan', 'IE 3312'], ['Krishna', 'CSE 1310'], ['Luis', 'CSE 1310'], ['Michael', 'IE 3301'], ['Nang', 'PHYS 1443'], ['Pramod', 'PHYS 1444'], ['Pramod', 'PHYS 1443'], ['Saroj', 'IE 3301'], ['Saroj', 'MATH 1426'], ['Sol', 'CSE 1310'], ['Timothy', 'MATH 2325'], ['Timothy', 'IE 3301']]
为了组织化,我编写了以下代码,将其添加到一个列表中,这是一个错误
d = []
size = len(c)
two = []
d.append(c[0][0])
d.append(c[0][1])
i = 1
while i < size :
# if current name = previous name, add classes
if c[i][0]==c[i-1][0] :
d.append(c[i][1])
# if current name != previous name, add name and classes
if c[i][0]!= c[i-1][0] :
d.append(c[i][0])
d.append(c[i][1])
i = i + 1
输出为
['Adam', 'PHYS 1443', 'Ashley', 'IE 3312', 'PHYS 1443', 'August', 'PHYS 1444', 'Baron', 'PHYS 1443', 'Christopher', 'IE 3301', 'CSE 1320', 'PHYS 1443', 'Dylan', 'CSE 1310', 'Henry', 'PHYS 1444', 'James', 'IE 3301', 'PHYS 1443', 'Jonathan', 'IE 3312', 'Krishna', 'CSE 1310', 'Luis', 'CSE 1310', 'Michael', 'IE 3301', 'Nang', 'PHYS 1443', 'Pramod', 'PHYS 1444', 'PHYS 1443', 'Saroj', 'IE 3301', 'MATH 1426', 'Sol', 'CSE 1310', 'Timothy', 'MATH 2325', 'IE 3301']
有什么简单的解决办法吗?你知道吗
输出
你可以用itertools.groupby组()如@thefourtheye或defaultdict按名称组织:
另一种方法是将其转换为字典:
输出:
然后,打印它:
输出:
将其存储在字典中也比存储在多维数组中更快、更高效。看看这个:
相关问题 更多 >
编程相关推荐