格式化函数中的字符串

时间:2016-05-18 19:54:14

标签: python string

我正在探索函数中的字符串格式,所以假设我们有这个简单而丑陋的函数:

def my_string(z,a,b): 
    return '%d' '%s' '%s' % (z, a, b)

z = 1
x = ['monkey', 'monkey2', 'monkey3']
y = ['banana', 'banana2', 'banana3']

for item in x and y:
    print my_string(z, x, y)

我希望打印出来:

1 monkey banana
1 monkey2 banana2
1 monkey3 banana3

但它正在回归:

1['monkey', 'monkey2', 'monkey3']['banana', 'banana2', 'banana3']
1['monkey', 'monkey2', 'monkey3']['banana', 'banana2', 'banana3']

我无法在地球上理解为什么返回原样并且不像我预期的那样,print x[0]确实会打印x的第一项monkey。我错在哪里?

1 个答案:

答案 0 :(得分:1)

它不起作用,因为每个循环都打印xy这些是您的列表,而不是列表中的项目。试试这段代码:

def my_string(z,a,b): 
    return '%d ' '%s ' '%s' % (z, a, b)

z = 1
x = ['monkey', 'monkey2', 'monkey3']
y = ['banana', 'banana2', 'banana3']

for item1,item2 in zip(x, y):
    print my_string(z, item1, item2)

zip使您可以通过返回元组来同时迭代两个列表。有关详细信息,请参阅here