当我知道sample_list
将恰好容纳4个项目时,以下方法起作用。
sample_list = ['cat', 'dog', 'bunny', 'pig']
print("Your list of animals are: {}, {}, {} and {}".format(*sample_list))
如果我不知道sample_list
在运行时将包含的项目数,如何格式化字符串?这意味着我无法在设计时输入适当数量的括号占位符。
答案 0 :(得分:3)
我只会使用join
sample_list = ['cat', 'dog', 'bunny', 'pig']
printstr = '%s, and %s' % (', '.join(sample_list[:-1]), str(sample_list[-1]))
print("Your list of animals are: %s" % printstr)
答案 1 :(得分:0)
这可能有帮助。
sample_list = ['cat', 'dog', 'bunny', 'pig']
str_val = ""
l = len(sample_list) -1
for i, v in enumerate(sample_list):
if i == l:
str_val += " and {}".format(v)
else:
str_val += " {},".format(v)
print("Your list of animals are: {}".format(str_val))
或者单线
str_val = "".join(" and {}".format(v) if i == l else " {},".format(v) for i, v in enumerate(sample_list))
print("Your list of animals are: {}".format(str_val))
输出:
Your list of animals are: cat, dog, bunny, and pig
答案 2 :(得分:0)
您可以创建在format
上使用的字符串。
sample_list = ['cat', 'dog', 'bunny', 'pig']
test='Your list of animals are: '+'{}, '*(len(sample_list)-1)+'and {}'
print(test) # Your list of animals are: {}, {}, {}, and {}
print(test.format(*sample_list)) # Your list of animals are: cat, dog, bunny, and pig
答案 3 :(得分:0)
如果您使用的是Python 3.5+,则可以使用以下f字符串:
sample_list = ['cat', 'dog', 'bunny', 'pig']
print(f"Your list of animals are: {', '.join([item for item in sample_list[:-1]])} and {sample_list[-1]}")
在输入数据时, f字符串比使用%
更安全,并且比.format
更灵活,在这个示例中,它没有太大的区别,以我的拙见,我应该习惯于使用它们很棒:)