奇怪的python系列,python如何做数组分割连接?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文中苏南大叔来吐槽一下奇怪的python
语言,其实,最奇怪的当属R
语言。不过因为R
语言和大家离得太远。所以,这里就先吐槽python
语言吧。本文吐槽的地方是:数组截取,以及数组连接成字符串。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述一系列计算机代码的事情。本文测试环境:python@3.6.8
。同样的写法,python
里面的数组不叫array
,叫list
,而且操作极其诡异。
数组分割
_list = ["a","b","c","d","e"]
_list2 = _list[slice(2)] #["a","b"]
_list3 = _list[slice(1,2)] #["b"]
_list4 = _list[slice(3,5)] #["d","e"]
_list5 = _list[slice(9,10)] #[]
_list6 = _list[slice(4,10)] #["e"]
做切片slice()
,然后做list
的位置信息。(下面的N
和M
都理解为自然意义上的数字排序,也就是说从1开始。)
- 切片slice(N),就返回第一个到第N个。
- 切片slice(N,M),就返回第N+1个到第M个。越界的话,就返回空。一部分越界的话,就返回不越界的。
php
中的类似函数是array_slice
,范例如下:
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // 返回 "c", "d" 和 "e"
$output = array_slice($input, -2, 1); // 返回 "d"
$output = array_slice($input, 0, 3); // 返回 "a", "b" 和 "c"
对比就可以看出,这个python
版本的slice
是多么的不合常理了吧?函数放到了[]
之中。
数组连接
数据连接,居然不是数组.join(字符串)
,而是字符串.join(数组)
。
_list = ["a","b"]
# _str = _list.join(",") # AttributeError: 'list' object has no attribute 'join'
_str =",".join(_list) # a,b
在试图数组.join(字符串)
的时候,会收到报错信息:
AttributeError: 'list' object has no attribute 'join'
在nodejs
中,是用数组.join(字符串)
的,php
中是使用join(字符串,数组)
的。
字符串去除两边空白
在php
里面,使用trim()
,ltrim()
,rtrim()
。
在python
里面,函数名叫strip()
,然后联动的函数叫做lstrip()
和rstrip()
。
_str=" a,b ".strip() # a,b
nodejs
里面没有内置的trim()
,都是后来自定义的,暂不提。
相关链接
- https://newsn.net/say/pip-list-package-versions.html
- https://newsn.net/say/python-json.html
- https://newsn.net/say/php-implode.html
结束语
本文就是来吐槽python
这些不合常理不按套路出牌的函数的,更多python
吐槽,请参考苏南大叔的博客文章:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。