如何打印不带括号的字符串数组,以便可以在函数参数中使用

Posted

技术标签:

【中文标题】如何打印不带括号的字符串数组,以便可以在函数参数中使用【英文标题】: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'

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何打印不带括号的字符串数组,以便可以在函数参数中使用的主要内容,如果未能解决你的问题,请参考以下文章

Matlab调用不带括号的函数

JavaScript 中怎么不带括号的调用函数

调用不带括号的函数时如何传递参数[Javascript]

在 Dart 中打印不带括号的列表

print()函数与转义字符

需要打印不带“括号”的 ArrayList