列表、元组、字典、集合、字符串
针对Python中的列表、元组、字典、集合、字符串,请以条目形式从各方面对比它们之间的异同。
一、字符串和元组属于不可变数据,即创建后不可修改。
列表、字典、集合属于可变数据,即创建后可以修改元素。
列表、元组、字典、集合、字符串都可以使用for遍历所有元素。
列表使用索引访问和修改指定位置元素。
list_ = [1, 2.5, 1, "a", ["b"], ("c",), {"d": "e"}, {"f"}]
print(list_[1]) # 2.5
list_[2] = 3
for e in list_:
print(e, end="\t")
# 1 2.5 3 a ['b'] ('c',) {'d': 'e'} {'f'}
元组使用索引访问指定位置元素。元组创建后不可修改。
tuple_ = (1, 2.5, 1, "a", ["b"], ("c",), {"d": "e"}, {"f"})
print(tuple_[6]) # {'d': 'e'}
字典使用键(key)访问和修改指定元素。
dict_ = {1: ["a"], 2.5: ("b",), "c": {"d": "e"}, True: ["f"], ("f",): {"g"}}
print(dict_[("f",)]) # {'g'}
dict_[True] = ["a"]
for e in dict_:
print(str(e) + ":" + str(dict_[e]),end="\t")
# 1:['a'] 2.5:('b',) c:{'d': 'e'} ('f',):{'g'}
集合不能使用索引访问和修改元素。但可以通过先删除后添加实现修改元素。
set_ = {1, 2.5, 1, "a", ("b",)}
set_.remove(1)
set_.add(3)
for i in set_:
print(i, end="\t")
# 2.5 3 a ('b',)
字符串使用索引访问指定位置元素。字符串创建后不可修改。
str_ = r'123\tabc'
print(str_[3]) # \
二、列表使用eval()或list()或中括号[]进行创建,元素之间使用逗号分隔。若不添加任何元素,则创建空列表。
# 使用[]创建
list_ = [1, 2, 3, 4, 5]
print(type(list_)) # <class 'list'>
# 使用eval()创建,eval()方法用来执行一个字符串表达式,并返回表达式的值
list_ = eval("[1,2,3,4,5]")
print(type(list_)) # <class 'list'>
# 使用list()创建,list()方法用于将元组转换为列表
list_ = list((1, 2, 3, 4, 5))
print(type(list_)) # <class 'list'>
元组使用eval()或tuple()或小括号()进行创建,元素之间使用逗号分隔。若不添加任何元素,则创建空元组。如果元组只有一个元素,则必须在这个元素后面加上逗号。
# 使用()创建
tuple_ = (1, 2, 3, 4, 5)
print(type(tuple_)) # <class 'tuple'>
# 使用eval()创建
tuple_ = eval("(1,2,3,4,5)")
print(type(tuple_)) # <class 'tuple'>
# 使用tuple()创建,tuple()函数用于将列表转换为元组
tuple_ = tuple([1, 2, 3, 4, 5])
print(type(tuple_)) # <class 'tuple'>
字典使用eval()或dict()函数或者大括号{}创建,元素之间用逗号分隔。每个元素必须是一个键(key)值(value)对。若不添加任何元素,则创建空字典。
# 使用{}创建
dict_ = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
print(type(dict_)) # <class 'dict'>
# 使用eval()创建
dict_ = eval("{'a':1,'b':2,'c':3,'d':4,'e':5}")
print(type(dict_)) # <class 'dict'>
# 使用dict()创建
dict_ = dict(a=1, b=2, c=3, d=4, e=5) # 传入关键字方式来构造字典
print(type(dict_)) # <class 'dict'>
dict_ = dict(zip(['a', 'b', 'c', 'd', 'e'], [1, 2, 3, 4, 5])) # 映射函数方式来构造字典
print(type(dict_)) # <class 'dict'>
dict_ = dict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]) # 可迭代对象方式来构造字典
print(type(dict_)) # <class 'dict'>
集合使用eval()或set()或{}进行创建,元素之间使用逗号分隔。由于{}用于创建空字典,所以只能通过不传参的set()来创建空集合。
# 使用{}创建
set_ = {1, 2, 3, 4, 5}
print(type(set_)) # <class 'set'>
# 使用eval()创建
set_ = eval("{1,2,3,4,5}")
print(type(set_)) # <class 'set'>
# 使用set()创建,参数为可迭代对象
set_ = set("python")
print(type(set_)) # <class 'set'>
字符串使用str()或单引号''或双引号""进行创建,引号内元素为一个整体,不需要使用分隔符。若引号内不添加字符或str()不传参,则创建空字符串
# 使用引号创建
str_ = '12345'
print(type(str_)) # <class 'str'>
# 使用str()创建
str_ = str(12345)
print(type(str_)) # <class 'str'>