元组概述
元组(tuple)属于Python语言的基本数据类型之一,是一种与列表十分类似的有序序列,二者的主要区别在于:元组中的元素创建后不能修改,而列表元素可以随时修改;元组使用英文半角圆括号(())进行标识,而列表使用英文半角方括号(钟勇 2023:38)。譬如,(3, "クリスマス", "cdd")就是一个典型的元组。
集合概述
集合(set)是Python语言的基本数据类型之一。与列表和元组相比,集合在编程中的使用频率相对较低。这里所说的集合类似于数学中的集合,是一种元素不能重复且没有顺序的容器,即集合当中不能有相同元素,且每个元素都没有索引号,这与列表和元组大不相同(钟勇 2023:38)。但集合和列表一样,其中的元素可以进行添加和删除等修改。此外,集合一般使用英文半角花括号({})进行标识,且其中的元素通常只能为数字和字符串,如{"fff", "中国語", 388}就是一个合法的集合。
列表、元组和集合的异同

列表、元组、集合及字符串的相互转换
集合同列表、元组和字符串之间主要通过内置函数list()、tuple()和set()以及内置方法join()进行相互转换。请看以下代码示例。
1 list1 = ["a", "b", "b", "a", "1"]
2 tuple1 = tuple(list1) # 将列表list1转换为元组
3 string1 = "".join(list1) # 将列表list1转换为字符串
4 print(f"list1:{list1}") # 使用f-string格式化打印模式。下同
5 print(f"tuple1:{tuple1}")
6 print(f"string1:{string1}")
7 print("")
8 print("其他数据类型转换为集合:")
9 set1 = set(list1) # 将列表list1转换为集合
10 print(f"set1:{set1}")
11 set2 = set(tuple1) # 将元组tuple1转换为集合
12 print(f"set2:{set2}")
13 set3 = set(string1) # 将字符串string1转换为集合
14 print(f"set3:{set3}")
15 print("")
16 print("集合转换为其他数据类型:")
17 list2 = list(set1) # 将集合set1转换为列表
18 print(f"list2:{list2}")
19 tuple2 = tuple(set1) # 将集合set1转换为元组
20 print(f"tuple2:{tuple2}")
21 string2 = "".join(set1) # 将集合set1转换为字符串
22 print(f"string2:{string2}")
我们在第2-3行代码中分别调用tuple()函数和join()方法将列表list1转换为元组和字符串,在第4-6行代码中使用f-string格式化打印模式将列表list1、元祖tuple1和字符串string1分别打印出来,在第9、11和13行代码中调用set()函数分别将列表list1、元组tuple1和字符串string1转换为集合,最后在第17、19和21行代码中调用list()函数、tuple()函数和join()方法将集合set1分别转换为列表、元组和字符串。
需要注意的是,当列表、元组和字符串等其他数据类型转换为集合时,由于集合中的元素不能重复,所以会自动进行元素去重处理。也正因为如此,我们经常将列表先转换为集合,再将该集合还原成列表,以此达到对列表元素进行去重的效果。实际上,以上代码“从list1到set1,再从set1到list2的转换过程”就是这种列表元素去重的过程。
参考文献
1. 钟勇, 2023. Python日语数字人文之语料库语言学技术及其应用[M]. 南京: 东南大学出版社.