为了账号安全,请及时绑定邮箱和手机立即绑定

将列表元素附加到另一个返回空列表/元组的列表的函数

将列表元素附加到另一个返回空列表/元组的列表的函数

拉丁的传说 2021-08-17 18:48:14
我有一个包含三行的文本文件,我将其拆分为一个名为cleanedFileListusing的列表列表function1():你好,1再次,2世界,3运行后function1(),打印时看起来像这样,这就是打印fileOutput得到的:[[hello, 1], [again, 2], [world, 3]]我基本上是在尝试创建一个function2()可以cleanedFileList根据第二个位置的数值将单词附加到三个单独的列表中的方法。例如,[hello,1]将作为“hello”附加到,l1因为它携带值 1,在它的第二个位置cleanedFileList...同样,[again, 2]将作为“再次”附加到l2因为值 2,在它的第二个位置fileInput = open('keywords.txt', 'r')l1 = []l2 = []l3 = []def function1(file):        cleanedFileList = []        for line in file:            cleanedFileList.append(line.strip().split(','))        return cleanedFileListfileOutput = function1(fileInput)    def function2(file):       for i in range(len(file)):            if file[i][1] == 1:                l1.append(file[i][0])            if file[i][1] == 2:                l2.append(file[i][0])            if file[i][1] == 3:                l3.append(file[i][0])       return l1, l2, l3listOutput = function2(fileOutput)print(listOutput)print(l1)但是,当我运行上面的代码时,我得到一个空元组(来自 in 的 return 语句function2()和一个空列表(来自尝试打印l1):([], [], [])[]
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

看来,您在 fileOutput 中有字符串,而不是整数。所以“1”!= 1。你也可以在你的字符串中看到空格:'1'、'2'等。


查看完整回答
反对 回复 2021-08-17
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

与动态创建列表相比,将元素存储到字典中会更好。


from collections import defaultdict


lst = [['hello', '1'], ['again', '2'], ['world', '3'], ['good', '1'], ['morning', '3']]


d = defaultdict(list)


for x in lst:

    d[x[1]].append(x[0])


print(d)

# defaultdict(<class 'list'>, {'1': ['hello', 'good'], '2': ['again'], '3': ['world', 'morning']})

现在,您可以访问所有1元素 as d['1'],所有2元素 asd['2']等等......


例如:


>>> d['1']

['hello', 'good']


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信