for i in range(len(results_histogram)):
if i!=len(results_histogram)-1:
url+=str(results_histogram[i])+','
Run Code Online (Sandbox Code Playgroud)
我的if语句正在检查我是否在最后一个循环中,但它不起作用.我究竟做错了什么?
为了避免这个问题,您似乎已经重写了str.join:
','.join(results_histogram)
Run Code Online (Sandbox Code Playgroud)
如果出现类似错误 TypeError: sequence item 0: expected string, int found,则可以将中间结果转换为字符串
','.join(map(str, results_histogram))
Run Code Online (Sandbox Code Playgroud)
str.join 毫无疑问,比在循环中连接多个字符串更有效,因为在Python中,字符串是不可变的,因此每个连接都会导致创建一个新字符串,然后必须在以后进行垃圾收集.
具体来说,您的示例是"不工作",因为您只想跳过添加逗号时完全跳过最后一个元素.这是一个明显而明显的小例子:
>>> x = [1,2,3]
>>> for i in range(len(x)):
... if i != len(x) - 1:
... print str(x[i]) + ',',
...
1, 2,
Run Code Online (Sandbox Code Playgroud)
所以你可以把你的例子重写为
for i in range(len(results_histogram)):
url += str(results_histogram[i])
if i!=len(results_histogram)-1:
url += ','
Run Code Online (Sandbox Code Playgroud)
但是你仍然应该坚持下去str.join.
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |