详解Python中List、Tuple、Set和Dictionary的区别和应用

  • Post category:Python

下面是Python中List、Tuple、Set和Dictionary的区别和应用的完整攻略。

List(列表)

List是Python的一种序列类型,可以存储多个有序的元素。List使用方括号[ ]进行声明,各元素使用逗号(,)隔开。List中的元素可以是数字、字符串等数据类型。List是可变的,可以通过对元素的添加、删除、修改等操作来改变List的内容。

声明一个List

list1 = [1,2,3,4]
list2 = ['a','b','c','d']

访问和修改List中的元素

print(list1[0]) #输出为1

list2[1] = 'hello'
print(list2) #输出为['a', 'hello', 'c', 'd']

List的常用操作

#添加元素
list1.append(5) 
#输出为[1, 2, 3, 4, 5]

#插入元素
list1.insert(0,0) 
#输出为[0, 1, 2, 3, 4, 5]

#删除元素
list1.remove(0) 
#输出为[1, 2, 3, 4, 5]

#查询元素位置
list1.index(4) 
#输出为3

#统计元素个数
list1.count(3) 
#输出为1

#排序
list1.sort() 
#输出为[1, 2, 3, 4, 5]

Tuple(元组)

Tuple是Python的一种序列类型,和List相似,但是不同的是Tuple是不可变的。Tuple使用小括号()或者没有括号来进行声明。

声明一个Tuple

tuple1 = (1,2,3,4)
tuple2 = 'a','b','c','d'

访问Tuple中的元素

print(tuple1[0]) #输出为1

尝试修改Tuple中的元素

tuple2[1] = 'hello'
#会抛出TypeError: 'tuple' object does not support item assignment

Tuple由于不可变的特性,所以不能进行添加、删除、修改等操作。但是Tuple中的元素可以是List,因此可以修改List中的元素。

tuple3 = (1, [2,3], 4)
tuple3[1][0] = 'hello'
print(tuple3) #输出为(1, ['hello', 3], 4)

Set(集合)

Set是Python中的一种无序、不重复的数据类型。Set使用大括号{ }或者set()函数来声明。Set中的元素必须是不可变的,例如数字、字符串、元组等。

声明一个Set

set1 = {1,2,3,4}
set2 = set(['a','b','c','d'])

访问Set中的元素

由于Set是无序的,因此无法像List和Tuple一样通过下标来访问元素。可以使用循环遍历集合中的所有元素。

for i in set1:
    print(i)
#输出为1,2,3,4

Set的常用操作

#向Set中添加元素
set1.add(5)
#输出为{1,2,3,4,5}

#从Set中删除元素
set1.remove(1)
#输出为{2,3,4,5}

#求Set中所有元素的和
sum(set1)
#输出为14

Set的数学运算

set1 = {1,2,3}
set2 = {2,3,4}

#求Set的交集
print(set1 & set2) #输出为{2,3}

#求Set的并集
print(set1 | set2) #输出为{1,2,3,4}

#求Set的差集
print(set1 - set2) #输出为{1}

#求Set的对称差集
print(set1 ^ set2) #输出为{1,4}

可以使用Set进行去重操作。

list4 = [1,2,3,3,4,5,5,5]
set3 = set(list4)
print(set3) #输出为{1,2,3,4,5}

Dictionary(字典)

Dictionary是Python中的一种键值对数据类型。Dictionary使用花括号{ }或者dict()函数来声明,其中每个键值对使用冒号(:)分隔,各个键值对之间使用逗号(,)隔开。Dictionary中的键必须是不可变类型,例如数字、字符串和元组等,而值可以是任意类型。

声明一个Dictionary

dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'}

访问Dictionary中的元素

可以根据key来访问Dictionary中的值。

print(dict1['name']) #输出为Tom

修改Dictionary中的元素

dict1['name'] = 'Jerry'
print(dict1) #输出为{'name': 'Jerry', 'age': 20, 'gender': 'male'}

Dictionary的常用操作

#删除Dictionary中的元素
del dict1['gender']
#输出为{'name': 'Tom', 'age': 20}

#遍历Dictionary中的所有键
for key in dict1.keys():
    print(key)
#输出为name, age

#遍历Dictionary中的所有值
for value in dict1.values():
    print(value)
#输出为Tom, 20

#遍历Dictionary中的所有键值对
for key, value in dict1.items():
    print(key, value)
#输出为name Tom, age 20

Dictionary的应用

Dictionary是非常常用的数据类型。例如可以使用Dictionary来统计一段话中出现的单词个数。

text = 'This is a test. This is only a test.'

words = text.lower().split()

word_counts = {}
for word in words:
    if word not in word_counts:
        word_counts[word] = 1
    else:
        word_counts[word] += 1

print(word_counts)
#{'this': 2, 'is': 2, 'a': 2, 'test.': 1, 'only': 1, 'test.': 1}

另外,可以使用Dictionary来模拟缓存和数据库查询等应用场景。

cache = {}
def query_database(query):
    if query in cache:
        print('Query found in cache:')
        return cache[query]
    else:
        print('Query not found in cache. Searching database...')
        result = search_database(query)
        cache[query] = result
        return result

以上就是Python中List、Tuple、Set和Dictionary的区别和应用的完整攻略。希望能够对您有所帮助。