Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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中的列表_Python_List_Loops_Merge - Fatal编程技术网

如何合并循环输出Python中的列表

如何合并循环输出Python中的列表,python,list,loops,merge,Python,List,Loops,Merge,这里是Python新手 我试图将两个列表的输出合并到一个for循环的列表中。已尝试附加和扩展,但无效 这是我的密码: c_files =['file1','file2'] doc_count = 0 comb_cran = [] for fname in c_files: with open(fname,'r') as cr: cran = cr.read() doc_count = doc_count + 1 doc

这里是Python新手

我试图将两个列表的输出合并到一个for循环的列表中。已尝试附加和扩展,但无效

这是我的密码:

c_files =['file1','file2']

doc_count = 0
comb_cran = []

for fname in c_files:
    with open(fname,'r') as cr:
        cran = cr.read()

        doc_count = doc_count + 1        
        docID = os.path.basename(fname) 

        #TOKENIZING :

        # remove SGML Tags
        removedsgml_cran = BeautifulSoup(cran,"html.parser")
        clean_cran = removedsgml_cran.get_text()

        # remove non-alphanumeric
        non_alpha = re.compile('([^\s\w]|_)+')
        alpha = non_alpha.sub(' ',clean_cran)
        alpha_lower = alpha.lower()

        # word Tokenizing using nltk
        tokenized =  word_tokenize(alpha_lower)                 

        # combine the list
        #comb_cran.extend(tokenized) 

        cword_removed = [(w,docID,1) for w in tokenized if not w in c_words]    

    print(cword_removed)
结果是:

[('1', 'cranfield0001', 1), ('experimental', 'cranfield0001', 1), ('investigation', 'cranfield0001', 1), ('aerodynamics', 'cranfield0001', 1), ('slipstream', 'cranfield0001', 1), ('brenckman', 'cranfield0001', 1), ('ae', 'cranfield0001', 1), ('scs', 'cranfield0001', 1), ('25', 'cranfield0001', 1), ('1958', 'cranfield0001', 1), ('324', 'cranfield0001', 1), ('experimental', 'cranfield0001', 1), ('study', 'cranfield0001', 1), ('propeller', 'cranfield0001', 1), ('slipstream', 'cranfield0001', 1), ('made', 'cranfield0001', 1), ('order', 'cranfield0001', 1), ('determine', 'cranfield0001', 1), ('spanwise', 'cranfield0001', 1), ('distribution', 'cranfield0001', 1), ('lift', 'cranfield0001', 1), ('increase', 'cranfield0001', 1), ('due', 'cranfield0001', 1), ('slipstream', 'cranfield0001', 1), ('angles', 'cranfield0001', 1), ('attack', 'cranfield0001', 1), ('free', 'cranfield0001', 1), ('stream', 'cranfield0001', 1), ('slipstream', 'cranfield0001', 1), ('velocity', 'cranfield0001', 1), ('ratios', 'cranfield0001', 1), ('results', 'cranfield0001', 1), ('intended', 'cranfield0001', 1), ('evaluation', 'cranfield0001', 1), ('basis', 'cranfield0001', 1), ('theoretical', 'cranfield0001', 1), ('treatments', 'cranfield0001', 1), ('problem', 'cranfield0001', 1), ('comparative', 'cranfield0001', 1), ('span', 'cranfield0001', 1), ('loading', 'cranfield0001', 1), ('curves', 'cranfield0001', 1), ('supporting', 'cranfield0001', 1), ('evidence', 'cranfield0001', 1), ('showed', 'cranfield0001', 1), ('substantial', 'cranfield0001', 1), ('lift', 'cranfield0001', 1), ('increment', 'cranfield0001', 1), ('produced', 'cranfield0001', 1), ('slipstream', 'cranfield0001', 1), ('due', 'cranfield0001', 1), ('destalling', 'cranfield0001', 1), ('boundary', 'cranfield0001', 1), ('layer', 'cranfield0001', 1), ('control', 'cranfield0001', 1), ('effect', 'cranfield0001', 1), ('integrated', 'cranfield0001', 1), ('remaining', 'cranfield0001', 1), ('lift', 'cranfield0001', 1), ('increment', 'cranfield0001', 1), ('subtracting', 'cranfield0001', 1), ('destalling', 'cranfield0001', 1), ('lift', 'cranfield0001', 1), ('found', 'cranfield0001', 1), ('agree', 'cranfield0001', 1), ('potential', 'cranfield0001', 1), ('flow', 'cranfield0001', 1), ('theory', 'cranfield0001', 1), ('empirical', 'cranfield0001', 1), ('evaluation', 'cranfield0001', 1), ('destalling', 'cranfield0001', 1), ('effects', 'cranfield0001', 1), ('made', 'cranfield0001', 1), ('specific', 'cranfield0001', 1), ('configuration', 'cranfield0001', 1), ('experiment', 'cranfield0001', 1)]


[('2', 'cranfield0002', 1), ('simple', 'cranfield0002', 1), ('shear', 'cranfield0002', 1), ('flow', 'cranfield0002', 1), ('past', 'cranfield0002', 1), ('flat', 'cranfield0002', 1), ('plate', 'cranfield0002', 1), ('incompressible', 'cranfield0002', 1), ('fluid', 'cranfield0002', 1), ('small', 'cranfield0002', 1), ('viscosity', 'cranfield0002', 1), ('yili', 'cranfield0002', 1), ('department', 'cranfield0002', 1), ('aeronautical', 'cranfield0002', 1), ('engineering', 'cranfield0002', 1), ('rensselaer', 'cranfield0002', 1), ('polytechnic', 'cranfield0002', 1), ('institute', 'cranfield0002', 1), ('troy', 'cranfield0002', 1), ('study', 'cranfield0002', 1), ('high', 'cranfield0002', 1), ('speed', 'cranfield0002', 1), ('viscous', 'cranfield0002', 1), ('flow', 'cranfield0002', 1), ('past', 'cranfield0002', 1), ('dimensional', 'cranfield0002', 1), ('curved', 'cranfield0002', 1), ('shock', 'cranfield0002', 1), ('wave', 'cranfield0002', 1), ('emitting', 'cranfield0002', 1), ('nose', 'cranfield0002', 1), ('leading', 'cranfield0002', 1), ('edge', 'cranfield0002', 1), ('exists', 'cranfield0002', 1), ('inviscid', 'cranfield0002', 1), ('rotational', 'cranfield0002', 1), ('flow', 'cranfield0002', 1), ('region', 'cranfield0002', 1), ('shock', 'cranfield0002', 1), ('wave', 'cranfield0002', 1), ('boundary', 'cranfield0002', 1), ('layer', 'cranfield0002', 1), ('situation', 'cranfield0002', 1), ('arises', 'cranfield0002', 1), ('instance', 'cranfield0002', 1), ('study', 'cranfield0002', 1), ('hypersonic', 'cranfield0002', 1), ('viscous', 'cranfield0002', 1), ('flow', 'cranfield0002', 1), ('past', 'cranfield0002', 1), ('flat', 'cranfield0002', 1), ('plate', 'cranfield0002', 1), ('situation', 'cranfield0002', 1), ('prandtl', 'cranfield0002', 1), ('classical', 'cranfield0002', 1), ('boundary', 'cranfield0002', 1), ('layer', 'cranfield0002', 1), ('problem', 'cranfield0002', 1), ('prandtl', 'cranfield0002', 1), ('original', 'cranfield0002', 1), ('problem', 'cranfield0002', 1), ('inviscid', 'cranfield0002', 1), ('free', 'cranfield0002', 1), ('stream', 'cranfield0002', 1), ('boundary', 'cranfield0002', 1), ('layer', 'cranfield0002', 1), ('irrotational', 'cranfield0002', 1), ('hypersonic', 'cranfield0002', 1), ('boundary', 'cranfield0002', 1), ('layer', 'cranfield0002', 1), ('problem', 'cranfield0002', 1), ('inviscid', 'cranfield0002', 1), ('free', 'cranfield0002', 1), ('stream', 'cranfield0002', 1), ('considered', 'cranfield0002', 1), ('rotational', 'cranfield0002', 1), ('effects', 'cranfield0002', 1), ('vorticity', 'cranfield0002', 1), ('recently', 'cranfield0002', 1), ('discussed', 'cranfield0002', 1), ('ferri', 'cranfield0002', 1), ('libby', 'cranfield0002', 1), ('present', 'cranfield0002', 1), ('paper', 'cranfield0002', 1), ('simple', 'cranfield0002', 1), ('shear', 'cranfield0002', 1), ('flow', 'cranfield0002', 1), ('past', 'cranfield0002', 1), ('flat', 'cranfield0002', 1), ('plate', 'cranfield0002', 1), ('fluid', 'cranfield0002', 1), ('small', 'cranfield0002', 1), ('viscosity', 'cranfield0002', 1), ('investigated', 'cranfield0002', 1), ('shown', 'cranfield0002', 1), ('problem', 'cranfield0002', 1), ('treated', 'cranfield0002', 1), ('boundary', 'cranfield0002', 1), ('layer', 'cranfield0002', 1), ('approximation', 'cranfield0002', 1), ('feature', 'cranfield0002', 1), ('free', 'cranfield0002', 1), ('stream', 'cranfield0002', 1), ('constant', 'cranfield0002', 1), ('vorticity', 'cranfield0002', 1), ('discussion', 'cranfield0002', 1), ('restricted', 'cranfield0002', 1), ('dimensional', 'cranfield0002', 1), ('incompressible', 'cranfield0002', 1), ('steady', 'cranfield0002', 1), ('flow', 'cranfield0002', 1)]
结果是正确的,但是它们是从每个循环打印的单独列表。 我需要他们在一个单一的名单


我尝试将打印内容放在循环之外,然后它只打印第二个列表。

当您循环文件时,您将得到一个文件的每个列表。您可以使用惊人的简单运算符“+”轻松组合列表。您的正确代码是:

c_files =['file1','file2']

doc_count = 0
comb_cran = []    
total_list=[] #Your final wanted list

for fname in c_files:
    with open(fname,'r') as cr:
        ...your codes

        #Combine the list by simple '+' operator
        total_list = total_list+[(w,docID,1) for w in tokenized if not w in c_words]    

    print(cword_removed)

因此,这里您遇到了堆栈和一个称为范围的概念

在您的程序中,相关列表已被删除。您只能在循环中声明和初始化它。当您的程序第一次到达cword_时,它将创建一个类型为list的变量,并使用您定义的列表来填充它。当程序第二次循环时,它会用新值覆盖变量!这是因为移除的局部变量cword_仅在循环的范围内

要解决此问题,请在循环外部声明变量,并通过列表理解增加:

c_files =['file1','file2']

doc_count = 0
comb_cran = []
cword_removed = []

for fname in c_files:
    with open(fname,'r') as cr:
    .
    . # the rest of your code
    .
    cword_removed += [(w,docID,1) for w in tokenized if not w in c_words]

您只是每次都覆盖列表,然后打印新列表。您可以添加列表。在循环之前定义您的列表,并使用full_list+=new_list将新列表添加到已经存在的列表中。并将最终的print语句置于for循环之外

c_files =['file1','file2']

doc_count = 0
comb_cran = []
cword_removed = []


for fname in c_files:
    with open(fname,'r') as cr:
        cran = cr.read()

        doc_count = doc_count + 1        
        docID = os.path.basename(fname) 

        #TOKENIZING :

        # remove SGML Tags
        removedsgml_cran = BeautifulSoup(cran,"html.parser")
        clean_cran = removedsgml_cran.get_text()

        # remove non-alphanumeric
        non_alpha = re.compile('([^\s\w]|_)+')
        alpha = non_alpha.sub(' ',clean_cran)
        alpha_lower = alpha.lower()

        # word Tokenizing using nltk
        tokenized =  word_tokenize(alpha_lower)                 

        # combine the list
        #comb_cran.extend(tokenized) 

        cword_removed += [(w,docID,1) for w in tokenized if not w in c_words]    

print(cword_removed)

您尝试过列表1+列表2吗?您可以尝试使用zip。若你们想一个接一个地在列表中实现,那个么就用list.appendelement作为SecondListElements中的元素谢谢你们。排序。这是我的荣幸:我想知道如何将c_文件=['file1','file2']概括为已知的大量条目。它不仅仅是一个numpy数组,我认为这将是worng数据类型——这里也是python新手!