大多数pythonic方式将对象添加到字符串?

时间:2018-02-04 04:52:48

标签: string python-3.x standards

我有Java背景,我正在尝试学习Python。假设我有一个数组,我想打印出它的长度和一个字符串。在Java中,我会这样做:

System.out.println("The length of the list is " + myList.length);

但是,我不知道在Python中可接受的方法是什么。我会这样做:

print("The length of the list is " + str(len(my_list)))

或者这个?:

print("The length of the list is {x}".format(x=len(my_list)))

最常被接受的pythonic方式是做什么的?如果是这样,为什么?

3 个答案:

答案 0 :(得分:1)

在Python≥3.6中,你也可以这样做:

print(f'The length of the list is {len(my_list)}')

文档:https://docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals

如果要将自定义类的实例插入到字符串中,请确保它具有__str__方法。

答案 1 :(得分:1)

有四种方法可以将对象的字符串表示形式放入字符串中,但在这种情况下,我建议不要使用它们:

  • 连接:print("The length of the list is " + str(len(my_list)))
  • 旧式格式:print("The length of the list is %d" % len(my_list))
  • 新式格式:print("The length of the list is {}".format(len(my_list)))
  • f-strings:print(f"The length of the list is {len(my_list)}")

相反,只需利用print可以为您做到这一点的事实!

print("The length of the list is", len(my_list))

注意你不需要将它强制转换为字符串,并且我从字符串文字中删除了尾随空格:print会自动在其参数之间放置一个空格。

答案 2 :(得分:0)

事实上,最好的方法取决于您,但Python建议使用.format()

和Java中的System.out.printf一样,您也可以编写

print('The length of the list is %d' % len(my_list))