Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 3.x 为什么我不能在列表中追加一行?_Python 3.x_List_Listiterator - Fatal编程技术网

Python 3.x 为什么我不能在列表中追加一行?

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

我有两个dim列表,在一些列表中包含重复的元素,如下所示

  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]