如何将多个参数从 Python 中的列表逐行传递给函数
How to pass several arguments to a function from a list in Python line by line
我有一个带有数字的列表。
列表有 3 组数字后跟新行 \n
我想取 3 个第一组数字并将它们传递给一个函数,然后是下一组
list = ['4', '23', '21\n20', '29', '30\n23', '11', '5' ........]
function (a,b,c)
#do something with the numbers
您首先需要拆分每个包含 \n 的元素:
list2 = [i.split('\n') for i in list]
list2 = [y for x in list2 for y in x]
然后每三个元素调用一次函数:
for i in range(len(list2)):
if i % 3 == 0:
function(list2[i], list2[i+1], list2[i+2])
您应该将数据拆分成行,然后您可以使用 .split('x')
拆分每一行。这使得以您想要的形式获取数据变得更加简单。例如,
data = '''4x23x21
20x29x30
23x11x5
'''
def func(a, b, c):
print('a=', a, 'b=', b, 'c=', c, 'sum=', a + b + c)
for row in data.splitlines():
a, b, c = [int(u) for u in row.split('x')]
func(a, b, c)
输出
a= 4 b= 23 c= 21 sum= 48
a= 20 b= 29 c= 30 sum= 79
a= 23 b= 11 c= 5 sum= 39
可以使用 *
"splat" 运算符简化 for
循环和函数调用:
for row in data.splitlines():
args = [int(u) for u in row.split('x')]
func(*args)
我有一个带有数字的列表。 列表有 3 组数字后跟新行 \n 我想取 3 个第一组数字并将它们传递给一个函数,然后是下一组
list = ['4', '23', '21\n20', '29', '30\n23', '11', '5' ........]
function (a,b,c)
#do something with the numbers
您首先需要拆分每个包含 \n 的元素:
list2 = [i.split('\n') for i in list]
list2 = [y for x in list2 for y in x]
然后每三个元素调用一次函数:
for i in range(len(list2)):
if i % 3 == 0:
function(list2[i], list2[i+1], list2[i+2])
您应该将数据拆分成行,然后您可以使用 .split('x')
拆分每一行。这使得以您想要的形式获取数据变得更加简单。例如,
data = '''4x23x21
20x29x30
23x11x5
'''
def func(a, b, c):
print('a=', a, 'b=', b, 'c=', c, 'sum=', a + b + c)
for row in data.splitlines():
a, b, c = [int(u) for u in row.split('x')]
func(a, b, c)
输出
a= 4 b= 23 c= 21 sum= 48
a= 20 b= 29 c= 30 sum= 79
a= 23 b= 11 c= 5 sum= 39
可以使用 *
"splat" 运算符简化 for
循环和函数调用:
for row in data.splitlines():
args = [int(u) for u in row.split('x')]
func(*args)