Python 3.x 为什么我不能在列表中追加一行?
我有两个dim列表,在一些列表中包含重复的元素,如下所示Python 3.x 为什么我不能在列表中追加一行?,python-3.x,list,listiterator,Python 3.x,List,Listiterator,我有两个dim列表,在一些列表中包含重复的元素,如下所示 myData=[['a',1,10],['b',2,20],['a',3,30],['a',4,40]] 我想做: 创建两个名为的空列表(重复列表、唯一列表) 读取每个myData列表中的第一列/(元素) 如果唯一列表中不存在第一列/元素,则追加 整行到唯一列表 如果它存在于唯一列表中,则将整行追加到duplicatedList(do) 不附加到唯一列表) 我写了下面的代码: duplicatedLists=[] unique
myData=[['a',1,10],['b',2,20],['a',3,30],['a',4,40]]
我想做:
- 创建两个名为的空列表(重复列表、唯一列表)
- 读取每个myData列表中的第一列/(元素)
- 如果唯一列表中不存在第一列/元素,则追加 整行到唯一列表
- 如果它存在于唯一列表中,则将整行追加到duplicatedList(do) 不附加到唯一列表)
duplicatedLists=[]
uniqueLists=[]
myData=[['a',1,10],['b',2,20],['a',3,30],['a',4,40]]
for row in myData:
print(row[0])
if(row[0] not in uniqueLists):
uniqueLists.append(row)
else:
duplicatedLists.append(row)
print(uniqueLists)
print(duplicatedLists)
so my result should be:
uniqueLists=[['a',1,10],['b',2,20]]
duplicatedLists=[[['a',3,30],['a',4,40]].
然而,我得到了这个结果:
[['a', 1, 10], ['b', 2, 20], ['a', 3, 30], ['a', 4, 40]]
[]
如果(第[0]行不在唯一列表中),则此行有问题:您正在检查第一个元素,但您正在将整个子列表追加到唯一列表中 相反,请尝试:
myData=[['a',1,10],['b',2,20],['a',3,30],['a',4,40]]
duplicatedLists=[]
uniqueLists=[]
check_val = set()
for i in myData:
if i[0] not in check_val: #Check if value in set.
uniqueLists.append(i)
check_val.add(i[0]) #! Add only first element to perform check.
else:
duplicatedLists.append(i)
print(uniqueLists) #[['a', 1, 10], ['b', 2, 20]]
print(duplicatedLists) #[['a', 3, 30], ['a', 4, 40]]
我不明白你的意思到底是什么错误,但是,我喜欢你解决这个问题的方式。非常感谢您的帮助,我真的很感激您的比较看起来像这样的
“a”
不在[[a',1,10],“b',2,20],“a',3,30],“a',4,40]