Swift4.0学习之路09-Swift中的元祖的使用

本文介绍了Swift语言中的元组概念及其应用场景。包括元组的基本定义、不同类型元组的创建方式及如何在字典和数组的遍历中应用元组。通过实际示例帮助读者更好地理解和使用元组。

1.元组的介绍

    元组是swift特有的,oc中并没有。它是一种数据结构,在数学中广泛运用。类似于数组或者字典。可以用于一组数据,组成元组类型的数据可以称之为“元素”。

2.元组的定义

// 1.定义一个不可变元组
let tupleC = (1,2,3)

// 2.定义一个可变元组
var tupleM = ("yinguoqiang",27,178.0)

// 3.定义一个任意类型的元组
var person : [Any] = ["yinguoqiang",27, 178]

// 4.定义一个可直接用属性访问的元组
var my = (name : "yinguoqiang",age : 18)
my.name
my.age

3.元组的简单使用

    http错误码 404,not found

// 5.http错误码
var error = (code:404, message:"not found")
error.code
error.message

4.元祖的应用场景

    元组支持嵌套

/ 6.元组嵌套
var moneyArray:[(Int,String)] = [(10,"Penny"), (15,"Nickle"), (3,"Quarter")]

var userInfoDic:[String, (Int,String)] = ["peny":(10,"girl"), "nakl":(15,"boy")]

适用于字典遍历

//官方文档上的例子
var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
  
//遍历airports
for (airportCode, airportName) in airports {
  print("\(airportCode): \(airportName)")
}

适用于数组遍历

//官方文档上的例子
var shoppingList = ["Eggs", "Milk"]
  
for (index, value) in shoppingList.enumerate() {
  print("Item \(index + 1): \(value)")
}

### Python Tuple 教程 #### 什么是元组? Python 中的元组Tuple)是一种不可变的数据结构,属于有序序列的一种。它类似于列表(List),但具有不可更改的特点。这意味着一旦创建了一个元组,就不能对其内容进行增删改操作[^3]。 #### 如何定义元组元组可以通过多种方式定义: 1. **空元组** 定义一个空元组非常简单,只需使用一对圆括号即可。 ```python empty_tuple = () print(empty_tuple) # 输出:() ``` 2. **单元素元组** 如果要定义只有一个元素的元组,则需要在该元素后加上逗号以区分普通的变量声明。 ```python single_element_tuple = ("only",) print(single_element_tuple) # 输出:("only",) ``` 3. **多元素元组** 多个元素之间用逗号分隔,默认情况下即使没有圆括号也会被识别为元组。 ```python multi_elements_tuple = "apple", "banana", "cherry" print(multi_elements_tuple) # 输出:("apple", "banana", "cherry") ``` 4. **通过 `tuple()` 函数构建** 可以利用内置函数 `tuple()` 将其他可迭代对象转化为元组。 ```python list_to_convert = ["red", "green", "blue"] converted_tuple = tuple(list_to_convert) print(converted_tuple) # 输出:("red", "green", "blue") ``` #### 访问元组中的元素 由于元组是一个有序集合,因此可以像列表一样通过索引来访问其中的元素。需要注意的是,负数索引表示从末尾开始计数。 ```python example_tuple = (10, 20, 30, 40, 50) # 正向索引 print(example_tuple[0]) # 输出:10 # 负向索引 print(example_tuple[-1]) # 输出:50 ``` #### 切片操作 元组支持切片操作,允许提取子集而不改变原元组。 ```python sliced_tuple = example_tuple[1:4] print(sliced_tuple) # 输出:(20, 30, 40) ``` #### 不可变特性及其影响 因为元组是不可变的,所以尝试重新分配某个位置上的值会引发错误。 ```python try: example_tuple[0] = 99 except TypeError as e: print(e) # 输出:'tuple' object does not support item assignment ``` 然而,如果元组内部包含可变的对象(如列表),则这些对象本身是可以被修改的。 ```python mutable_inside_immutable = ([1, 2], [3, 4]) mutable_inside_immutable[0][0] = 99 print(mutable_inside_immutable) # 输出:([99, 2], [3, 4]) ``` #### 常见方法与功能 尽管元组不像列表那样灵活,但它仍然提供了一些有用的方法: - `.count(x)` 返回指定元素 x 的出现次数。 - `.index(x[, start[, end]])` 查找第一个等于 x 的元素的位置;可选参数用于限定查找范围。 示例演示如下: ```python sample_tuple = ('a', 'b', 'c', 'd', 'e') # count 方法 print(sample_tuple.count('b')) # 输出:1 # index 方法 print(sample_tuple.index('d')) # 输出:3 ``` 此外,在某些场景下,元组因其不变性和哈希能力而成为理想的选择,比如作为字典键或集合成员时[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值