尝试将项目从一个列表添加到另一个列表而不重复会导致空列表

时间:2017-02-04 01:08:20

标签: python list python-3.x

到目前为止,这是我的代码:

duplist = [5,9,14,3,9,97,4,3,23,85,123,5]

singlist = []

for i in (duplist) :
    if i != singlist :
        [str(i)] + singlist
        print(singlist)

我正在尝试将duplist中的所有项目添加到singlist而不添加重复项。我从这段代码得到的结果是一个空列表。我相信错误在我的if语句行中,虽然我不确定使用什么运算符而不是!=

4 个答案:

答案 0 :(得分:0)

这可以通过获取列表的集合并从中构建新列表来完成。集合中的每个项目都是唯一的。

singlist = [i for i in set(duplist)]

漫长的方法:

for i in duplist:
    if i not in singlist:
        singlist.append(i)

答案 1 :(得分:0)

我在您的代码中看到了几个问题。

试试这个:

duplist = [5,9,14,3,9,97,4,3,23,85,123,5]

singlist = []

for i in (duplist):
    if i  not in singlist:
        singlist.append(i)
        print(singlist)

答案 2 :(得分:0)

你可以用这个

singlist = list(set(duplist))

答案 3 :(得分:0)

如果您允许使用外部库:

    require 'watir-get-image-content'
    def save_captcha(@browser)      
        img = @browser.image(xpath: '//*[@id="ctl00_captcha"]/td[2]/div[1]/span[1]/img')        
        filename = "#{@path}/tmp/current_captcha.jpg"
        File.open(filename, 'wb'){|file| file.write( img.to_jpg) }          
    end

这是基于itertools documentation中的食谱。所以你可以自己轻松实现它。