Python样式:字符串与string.split()的列表

时间:2019-05-06 11:01:22

标签: python

在需要一组字符串文字的模块中,可以将其声明为

values = ['hello', 'world']

但是我已经看到许多有经验的python程序员写

values = 'hello world'.split()

显然认为它更具可读性。 (我也认为我已经在python标准库源代码中看到了这一点,但我不确定)

任何python指南是否都将它们作为首选样式,还是归因于个人喜好?

3 个答案:

答案 0 :(得分:1)

在某些情况下,当您使用更长的字符串时,使用.split()比写一个列表更短,并且更具可读性。

在您的情况下,用一个很小的字符串并不重要;我只使用一个列表,因为.split()更长。这真的取决于您的喜好。

答案 1 :(得分:1)

values = ['hello', 'world']应该更有效。另外,明确地显示values是字符串列表。

答案 2 :(得分:0)

我们可以看一下源代码。

split source code

首先初始化一个新列表:

separator

然后进行 while ((j < str_len) && (maxcount-- > 0)) { for(; j < str_len; j++) { /* I found that using memchr makes no difference */ if (str[j] == ch) { SPLIT_ADD(str, i, j); i = j = j + 1; break; } } } 参数查找:

SPLIT_ADD

PyList_SET_ITEM实际上会调用{{1}},它将某个对象插入到内存阵列中。

结论

即使没有实际检查时间差,我也只能假设此查询比严格初始化列表要慢(即使有点)。