今天开始学Python(映射、过滤list和连接list)
来源:互联网 发布:js数组去重和排序 编辑:程序博客网 时间:2024/06/05 23:48
(1) list的映射和过滤
这是Python的强大性能之一啊...
它提供了一种紧凑的方法对list里的每个元素应用一个函数, 从而映射出一个新的list
上代码~
>>> li = [1,2,5,7]>>> [elem*2 for elem in li][2,4,10,14]>>> li[1,2,5,7]>>> li = [elem*2 for elem in li]>>> li[2,4,10,14]>>> [elem for elem in li if elem > 6][10, 14]
note 1.1. 映射的方法是: [ 对elem操作 forelem in list], 蓝色的部分可以自己定义
note 1.2. 映射是返回一个新的list, 并不会改变原list
note 1.3. 将一个list的映射赋值给原list是安全的, Python会在内存产生一个临时list, 映射完成后再赋值
note 1.4 if之后的表达式就是个过滤器, 使列表中的有些元素被映射的同时跳过另外一些元素。
(2)连接list和分割字符串(join方法和split方法)
连接list和分割字符串其实都是调用了字符串的方法,为什么强调这点,还是看代码吧~
>>>li = ["a","b","c"]>>>",".join(li)'a,b,c'>>> li = ["a",2,"000"]>>> ":".join(li)Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> ":".join(li)TypeError: sequence item 1: expected str instance, int found>>> li = [("a","b"),("c","d")]>>> "x".join(li)Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> "x".join(li)TypeError: sequence item 0: expected str instance, tuple found
note 2.1 join方法就是把list的每个元素连成一个字符串, 每个元素用一个分隔符隔开,
这个分隔符可以是任何字符串
note 2.2 这几个例子就可以说明,为什么要 强调是字符串的方法了.
join只能用于元素全是字符串的list, 它不进行任何强制类型转换,
连接一个 存在一个或多个非字符串元素 的list, 将会引发异常
当然,我们可以结合list的映射,将一个list里的每个元素映射成字符串
如:
>>>li = [("name1", "jack"),("name2","rose")]>>>" || ".join(["%s is %s" %(k,v) for k,v in li])'name1 is jack || name2 is rose'
学了join当然不能忘了split
join是将字符串的list连成一个, split就是反向的操作了
split是将一个字符串通过某个分隔符分成一个多元素list
这跟java里字符串的split效果差不多~
>>> "hello world".split("l")['he', '', 'o wor', 'd']>>> "hello world".split("l", 1) # 接受一个可选的第二参数['he', 'lo world']>>> "hello world\nni\thao".split() #没有参数的split()['hello', 'world', 'ni', 'hao']
note 2.3 注意分隔符完全被去掉了, 不会出现在返回的list中的任意元素里
note 2.4 两个连续的分隔符间也会返回一个空串
note 2.5 split的第二个参数可选, 表示要分割的次数
note 2.6 split如果没有参数,那么将按空白来分隔, 空格,回车,制表符都是空白
- 今天开始学Python(映射、过滤list和连接list)
- 今天开始学python
- Python 映射 list
- 开始Python -- List和Tuple(1)
- 开始Python -- List和Tuple(2)
- 开始Python -- List和Tuple(3)
- 今天开始学Python(and 和 or 运算)
- 【python】list的字符串连接和分割
- [python]连接两个List
- 草根学Python(三) List 和 Tuple
- 今天开始学python(内置数据类型)
- 今天开始学Python(函数可选参数)
- hibernate的list映射和map映射
- hibernate的list映射和map映射
- python set和list
- Python list和tuple
- Python list和tuple
- 每天学点Python之list
- 安装qt
- Eclipse CDT using MinGW does not output in console
- 分布式计算
- Git详解之九:Git内部原理
- Weka3.5中使用LibSVM
- 今天开始学Python(映射、过滤list和连接list)
- 关于 Java 性能方面的 9 个谬论
- java基础——集合
- 为你的应用准备最佳负载测试的 9 个技巧
- 捕获图片,捕获桌面屏幕,然后存储到文件中
- 进程与线程
- Java基础之ArrayList与LinkedList、Vector,以及HashMap与HashTable的区别
- 移植GAlib2.4.7到Visual Studio 2008
- 男人找不到女朋友的八大特征