在需要一组字符串文字的模块中,可以将其声明为
values = ['hello', 'world']
但是我已经看到许多有经验的python程序员写
values = 'hello world'.split()
显然认为它更具可读性。 (我也认为我已经在python标准库源代码中看到了这一点,但我不确定)
任何python指南是否都将它们作为首选样式,还是归因于个人喜好?
答案 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}},它将某个对象插入到内存阵列中。
即使没有实际检查时间差,我也只能假设此查询比严格初始化列表要慢(即使有点)。