zoukankan      html  css  js  c++  java
  • scala编程第16章学习笔记(4)——List对象的方法

    通过元素创建列表:List.apply

    List(1, 2, 3) 等价于List.apply(1, 2, 3):

    scala> List.apply(1, 2, 3)
    res0: List[Int] = List(1, 2, 3)

    创建数值范围:List.range

    List.range(from, until),可以创建从from开始到until减一的所有数值的列表。注:尾部until不在范围之内。

    还有一个版本的range可以带step值作为第三参数。这个操作可以产生从from开始的,间隔为step的列表元素。step可以为正,也可以为负:

    scala> List.range(1, 5)
    res1: List[Int] = List(1, 2, 3, 4)
    
    scala> List.range(1, 9, 2)
    res2: List[Int] = List(1, 3, 5, 7)
    
    scala> List.range(9, 1, -3)
    res3: List[Int] = List(9, 6, 3)

    解除啮合列表:List.unzip

    unzip操作是zip的相反。zip把两个列表组成对偶列表,unzip把对偶列表拆分还原为两个列表,其中一个列表由每对对偶的第一个元素组成,另一个由第二个元素组成:

    scala> val zipped = "abcde".toList zip List(1, 2, 3)
    zipped: List[(Char, Int)] = List((a,1), (b,2), (c,3))
    
    scala> zipped.unzip
    res5: (List[Char], List[Int]) = (List(a, b, c),List(1, 2, 3))

     连接列表:List.flatten、List.concat

    flatten方法以列表的列表做参数,并把所有的元素列表连接在一起。举例如下:

    scala> val xss = List(List('a', 'b'), List('c'), List('d', 'e'))

    xss: List[List[Char]] = List(List(a, b), List(c), List(d, e))

    scala> xss.flatten res7: List[Char] = List(a, b, c, d, e)

    concat方法与flatten类似,它能够连接多个元素列表。将多个列表以重复参数的形式直接传递给方法。数量不限:

    scala> List.concat(List('a', 'b'), List('c'))
    res9: List[Char] = List(a, b, c)
    
    scala> List.concat(List(), List('b'), List('c'))
    res10: List[Char] = List(b, c)
    
    scala> List.concat()
    res11: List[Nothing] = List()
  • 相关阅读:
    JNI 反射
    JNI 动态注册
    Nt* 与 Zw* 区别
    python之线程
    爬虫框架之Scrapy(四 ImagePipeline)
    初试PySnooper
    爬虫框架之Scrapy(三 CrawlSpider)
    爬虫框架之Scrapy(二)
    爬虫框架之Scrapy(一)
    selenium+谷歌无头浏览器爬取网易新闻国内板块
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4111007.html
Copyright © 2011-2022 走看看