元组的使用

第4关:元组的使用

100

  • 任务要求
  • 参考答案
  • 评论8

任务描述

本关任务:统计元组中所有整数的积。

相关知识

Scala 提供了一套很好的集合实现,Scala 集合分为可变的和不可变的集合。可变集合可以在适当的地方被更新或扩展。也就是说你可以修改,添加,移除一个集合的元素。相比之下,不可变集合类永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回

一个新的集合,同时使原来的集合不发生改变。在默认的情况下,Scala 使用的是不可变的集合类。本实训介绍的也是基于不可变集合类。

常见的集合类有 List 列表、Set 集合、Map 映射和元组等。接下来我们将为大家介绍第四种集合---元组。

元组简介

元组看起来犹如列表,都可以存储重复元素,但是它们之间最大的不同是元组可以包含不同类型的元素。

定义元组

定义元组可以有两种方式:一是直接将元素写在()中,另一种就是通过 new Tuplen()的方式。 1.直接将元素写在()中

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 定义元组
  4. val t = (1, 3.14, "Fred",1)
  5. }
  6. }

执行结果:

 
  1. (1,3.14,Fred,1)

上述代码定义了一个由三种元素组成的元组,对应的类型分别为[Int, Double, java.lang.String],另外需要注意的是,它是允许重复元素存在的(比如元素 1)。

2.通过 new Tuplen()的方式

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 定义有三个元素的元组
  4. val t1 = new Tuple3(1, 3.14, "Fred")
  5. // 定义有四个元素的元组
  6. val t2 = new Tuple4(1, 3.14, "Fred",3)
  7. println(t1)
  8. println(t2)
  9. }
  10. }

执行结果:

 
  1. (1,3.14,Fred)
  2. (1,3.14,Fred,3)

上述代码中,Tuple 后面的数字表示元组有多少个元素,比如 Tuple3 代表该元组存储 3 个元素,最多元素个数为 22。

元组的基本操作
访问元组

访问元组的元素可以通过数字索引实现。

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 创建元组
  4. val t = (4,3,2,1)
  5. // 计算元组中各元素的和
  6. val sum = t._1 + t._2 + t._3 + t._4
  7. println( "元素之和为: " + sum )
  8. }
  9. }

计算结果:

 
  1. 元素之和为: 10

在上述代码中,我们使用了 t._1 访问元组的第一个元素, t._2 访问第二个元素。

迭代元组

productIterator() 方法可以迭代输出元组的所有元素,元素的输出顺序和定义时相同。

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 创建元组
  4. val t = (4,3,2,1)
  5. t.productIterator.foreach{ i =>println( i )}
  6. }
  7. }

执行结果:

 
  1. 4
  2. 3
  3. 2
  4. 1
元组转为字符串

toString() 方法能将元组的所有元素组合成一个由逗号拼接的字符串。

 
  1. object ForDemo {
  2. def main(args: Array[String]): Unit = {
  3. // 创建元组
  4. val t = new Tuple3(1, "hello", "edu")
  5. println("连接后的字符串为: " + t.toString() )
  6. }
  7. }

执行结果:

 
  1. 连接后的字符串为: (1,hello,edu)
编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,统计元组中所有整数的积,具体要求如下:

  • 根据给定数据创建元组(给定数据为:23,hello,3,33,hi,map,51);
  • 统计元组中所有整数的积。
测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例: 测试输入:

 

预期输出:

 
  1. 整数积为: 116127
  2. object ForDemo {

      def main(args: Array[String]): Unit = {

        // 请在 Begin-End 间编写代码

        /********** Begin **********/

        val data = (23, "hello", 3, 33, "hi", "map", 51)

        var product = 1

        for (elem <- data.productIterator if elem.isInstanceOf[Int]) {

          product *= elem.asInstanceOf[Int]

        }

        println("整数积为: " + product)

        /********** End **********/

      }

    }

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python元组是一种不可变的数据类型,用于存储多个元素的有序集合。元组使用圆括号()来定义,并且可以包含任意类型的元素,包括数字、字符串、列表等。以下是一些常用的Python元组使用方法: 1. 创建元组: - 使用圆括号()来定义一个元组,可以包含多个元素,用逗号分隔。例如:tup = (1, 2, 3) - 可以使用tuple()函数将其他可迭代对象(如列表、字符串)转换为元组。例如:tup = tuple([1, 2, 3]) 2. 访问元组元素: - 可以使用索引来访问元组中的元素,索引从0开始。例如:tup返回元组中的第一个元素。 3. 切片元组: - 可以使用切片操作符[:]来获取元组的子集。例如:tup[1:3]返回从第二个元素到第三个元素的子集。 4. 元组拼接: - 可以使用"+"运算符来拼接两个或多个元组。例如:tup1 = (1, 2, 3) + (4, 5, 6)返回一个新的元组(1, 2, 3, 4, 5, 6)。 5. 元组长度: - 可以使用len()函数来获取元组的长度,即元组中元素的个数。例如:length = len(tup)返回元组的长度。 6. 元组解包: - 可以使用多个变量来同时接收元组中的多个元素,称为元组解包。例如:a, b, c = (1, 2, 3)。 7. 元组不可变性: - 元组是不可变的,即不能修改元组中的元素。一旦创建了元组,就不能像列表那样修改其中的元素。 总结一下,Python元组是一种不可变的有序集合,可以使用索引和切片来访问元素,使用"+"运算符来拼接元组使用len()函数获取元组的长度,以及使用多变量来进行元组解包操作。元组的不可变性使其在一些需要保持数据不变的场景中非常有用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python元组(Tuple)定义和操作示例.md](https://download.csdn.net/download/qq_42431718/88241278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python中元组的基本操作](https://blog.csdn.net/weixin_44169484/article/details/128629770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值