如何打印不带括号的字符串数组,以便可以在函数参数中使用
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
【讨论】:
以上是关于如何打印不带括号的字符串数组,以便可以在函数参数中使用的主要内容,如果未能解决你的问题,请参考以下文章