【问题标题】:How to print an array of strings without brackets, so it can be used in a function parameter如何打印不带括号的字符串数组,以便可以在函数参数中使用
【发布时间】:2022-01-07 19:12:35
【问题描述】:

我创建了一个带有 4 个参数的函数。但是我想将这 4 个参数中的 100 组不同的参数输入到我的函数中。

尝试使用 4 个参数迭代 100 个集合,但我需要只显示字符串的结果,而不是任何类型的括号,因为我的函数不能有额外的括号。

这是我的代码:

def main():
    run_list = [('file1.csv', 'file2.csv', pd.read_csv('file1.csv').columns[0], pd.read_csv('file2.csv').columns[0]),
                ('file3.csv', 'file4csv', pd.read_csv('file3.csv').columns[0], pd.read_csv('file4.csv').columns[0])]

    for k in run_list:
       myFunction(k)

如果我分解代码,我会得到以下信息:

    run_list = [('file1.csv', 'file2.csv', pd.read_csv('file1.csv').columns[0], pd.read_csv('file2.csv').columns[0]),
                ('file3.csv', 'file4csv', pd.read_csv('file3.csv').columns[0], pd.read_csv('file4.csv').columns[0])]

    for k in run_list:
        print(str(k))

>>> ('file1.csv', 'file2.csv', 'column_name1', 'column_name2')
>>> ('file3.csv', 'file4.csv', 'column_name3', 'column_name4')

所需的输出不带括号,因此我可以将每组中的 4 个参数用于 myFunction,它需要 4 个参数:

>>> 'file1.csv', 'file2.csv', 'column_name1', 'column_name2'
>>> 'file3.csv', 'file4.csv', 'column_name3', 'column_name4'

我尝试了.strip('[]'),它在print 上工作,但在function 上失败:

def main():
    run_list = [('file1.csv', 'file2.csv', pd.read_csv('file1.csv').columns[0], pd.read_csv('file2.csv').columns[0]),
                ('file3.csv', 'file4csv', pd.read_csv('file3.csv').columns[0], pd.read_csv('file4.csv').columns[0])]

    for k in run_list:
       print(k.strip('[]'))

>>> 'file1.csv', 'file2.csv', 'column_name1', 'column_name2'
>>> 'file3.csv', 'file4.csv', 'column_name3', 'column_name4'

def main():
    run_list = [('file1.csv', 'file2.csv', pd.read_csv('file1.csv').columns[0], pd.read_csv('file2.csv').columns[0]),
                ('file3.csv', 'file4csv', pd.read_csv('file3.csv').columns[0], pd.read_csv('file4.csv').columns[0])]

    for k in run_list:
       myFunction(k.strip('[]'))

>>>AttributeError: 'list' object has no attribute 'strip'

【问题讨论】:

    标签: python-3.x pandas dataframe function loops


    【解决方案1】:

    IIUC 使用* 解包:

    def myFunction(a,b):
        print (a)
        file1.csv
        file3.csv
        print (b)
        file2.csv
        file4.csv
        return a + '__' + b
        
    #test list of tuples
    run_list = [('file1.csv', 'file2.csv'),('file3.csv', 'file4csv')]
        
    for k in run_list:
        out = myFunction(*k)
        print (out)
        file1.csv__file2.csv
        file3.csv__file4csv
    

    如果传递元组:

    def myFunction(a):
        print (a)
        ('file1.csv', 'file2.csv')
        ('file3.csv', 'file4csv')
        return '__'.join(a)
    
    run_list = [('file1.csv', 'file2.csv', ),
                    ('file3.csv', 'file4csv')]
        
    for k in run_list:
        out = myFunction(k)
        print (out)
        file1.csv__file2.csv
        file1.csv__file2.csv
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 2020-08-13
      • 1970-01-01
      • 2012-03-10
      • 2019-02-23
      • 1970-01-01
      相关资源
      最近更新 更多